将某些特定元素的脏检查跳过到 ng-form 中

skip dirty checking for some specific element into ng-form

我有一个 ng-form,它有五个输入字段,每个输入字段都包含 ng-model 指令,现在我需要的是第 4 个数字输入字段不会因脏检查而触发,我该如何解决这个问题?

问题:不需要对某些特定元素进行脏检查。

重写在 ngModelController 上为名称字段定义的 $setDirty 方法。

创建一个指令no-dirty

validationApp.directive('noDirty', function () {
  return {
    require: 'ngModel',
    link: function (scope, element, attrs, ngModelCtrl) {
      // override the $setDirty method on ngModelController
      ngModelCtrl.$setDirty = angular.noop;
    }
  }
})

在标记中使用此指令

<input type="text" name="name" class="form-control" ng-model="user.name" required="" no-dirty/>

Working Plnkr