Как отключить проверку, требуемую ng, для большей части формы

У меня есть большая часть формы, которая должна быть отключена в некоторых сценариях. Я использую тег <fieldset> с атрибутом ng-disabled для включения/отключения части формы.

 <ng-form name="myForm">
    <fieldset ng-disabled="myModel.isFieldsetDisabled">
      <input id="myTextField" type="text" ng-required="true" ng-model="myModel.myAttribute">
      ... lots of other fields
    </fieldset>
  </ng-form>

Проблема: когда я отключаю <fieldset>, ng-форма по-прежнему недействительна, потому что некоторые поля ввода пусты (но должны быть обязательными). Я ожидал, что эти проверки будут отключены, когда они отключены.

Как получить действительную ng-форму, не возясь со всеми атрибутами, необходимыми для ng, во всех полях ввода в отключенной форме.

см. планкер: https://plnkr.co/edit/2JpSFqBqwdfgTa2wO4Ei?p=preview


person girafi    schedule 11.04.2016    source источник
comment
Итак, вы хотите, чтобы для входного атрибута ng-required было установлено значение false, когда набор полей отключен, верно?   -  person fbid    schedule 11.04.2016
comment
Единственный способ, который я могу придумать, - это установить атрибут ng-required для использования обратного флага вашего ng-disabled, например ng-required="!myModel.isFieldsetDisabled"   -  person KieranDotCo    schedule 11.04.2016
comment
Я ожидаю, что angular пропустит проверку для отключенных полей..?   -  person devqon    schedule 11.04.2016
comment
@fbid У меня довольно много полей ввода и выбора в отключенном наборе полей. Таким образом, решение, которое требует адаптации для каждой области, не будет первым выбором.   -  person girafi    schedule 12.04.2016
comment
@KieranDotCo см. комментарий выше   -  person girafi    schedule 12.04.2016
comment
@devqon Я тоже :) но реальность не с нами :(   -  person girafi    schedule 12.04.2016


Ответы (1)


Я бы попробовал что-то вроде этого:

ng-required="!myModel.isFieldsetDisabled"

то есть: ввод требуется, если переменная myModel.isFieldsetDisabled ложна...

person MarcoS    schedule 11.04.2016
comment
Дело в том, что у меня есть полноэкранная страница ввода и выбор виджетов внутри «набора полей». (см. «... много других полей» в вопросе). Если кто-нибудь найдет решение, не касаясь каждого поля ввода - person girafi; 12.04.2016
comment
Я думаю, что решения без добавления атрибута ng-required в каждое поле ввода не существует, извините... - person MarcoS; 07.09.2016