AngularJS: предотвращение проверки скрытых полей формы


каков наилучший способ предотвращения проверки скрытых полей формы в AngularJS?

3 55

3 ответа:

Я изначально пропустил встроенный

вы также можете полностью Добавить или удалить его из DOM/формы с помощью ng-if вместо ng-show.

<div ng-show="maritalStatus === 'M'">
    Number of children: <input type="number" ng-model="children"  ng-required="maritalStatus == 'M'">
</div>

этой

<div ng-if="maritalStatus === 'M'">
    Number of children: <input type="number" ng-model="children"  ng-required="true">
</div>

вы можете удалить required атрибут с помощью директивы:

<div ng-app="myApp">   
 <input type="backbutton" id="firstName" name="firstName" type="text"  required/>

var app = angular.module('myApp',[]);

app.directive('input',function($compile){
  return {
    restrict:'E',
    compile:function($tElement,$tAttrs){
        console.log("hi there");
      var el = $tElement[0];
      if(el.getAttribute('type')){
        el.removeAttribute('type');
        el.setAttribute($tAttrs.type,'');
        return function(scope){
          $compile(el)(scope);
        }
      }

    }  
  }
});


app.directive('remove',function($compile){
  return {
    restrict: 'A',
    replace:true,
    template:'',
      link: function (scope, element, attrs) {
          element.removeAttr('required');
      }
  }
});

посмотреть Fidlle здесь

перед:

<input id="firstName" name="firstName" required="" remove="" class="ng-scope">

после:

<input id="firstName" name="firstName" remove="" class="ng-scope">