Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 谁能给我解释一下这个密码匹配指令吗?_Angularjs_Angularjs Directive - Fatal编程技术网

Angularjs 谁能给我解释一下这个密码匹配指令吗?

Angularjs 谁能给我解释一下这个密码匹配指令吗?,angularjs,angularjs-directive,Angularjs,Angularjs Directive,谁能解释一下这段代码是如何工作的吗 HTML标记 <input type="password" ng-model="password" class="form-control" placeholder="Password" required> <input type="password" ng-model="confirm_password" class="form-control" placeholder="Password" required validate-equals

谁能解释一下这段代码是如何工作的吗

HTML标记

<input type="password" ng-model="password" class="form-control" placeholder="Password" required>
<input type="password" ng-model="confirm_password" class="form-control" placeholder="Password" required validate-equals="password">
谁能给我解释一下下面的
问题

以下代码在指令中起什么作用我真的不明白这个密码匹配指令是如何工作的?

$scope.watch(attrs.validateEquals, function(){  
    //ngModelCtrl.$viewValue always returns undefined      
    ngModelCtrl.$setViewValue(ngModelCtrl.$viewValue);
});

Angular没有$setDirty(尽管它有$setPristine),因此将模型设置为dirty的方法是通过其控件:

ngModelCtrl.$setViewValue(ngModelCtrl.$viewValue);
因此,在您的指令中,$watch正在检查validateEquals属性(密码)的更改,然后将模型设置为dirty。


<form name="password_form">
    <input type="password" ng-model="password" class="form-control" placeholder="Password" required>
    <input type="password" ng-model="confirm_password" class="form-control" placeholder="Password" required validate-equals="password">
</form>
<button ng-disabled="password_form.$invalid">save</button>
拯救
中,您可以通过检查表单的标志来执行角度验证,例如
$invalid
$error
((自定义验证))

这对于简单的验证非常有用,例如:

  • 必填字段(将
    required
    添加到
    )或
  • 最少字符数(添加
    min='5'
password\u表单。如果其中一项要求失败,将自动设置$invalid

validate equals
是一个指令,用于在两个密码字段不匹配时手动设置表单的
$invalid
(或
$dirty
?)标志

调用
$setViewValue
重新评估表单的有效性

每次更改输入($setViewValue被调用)或绑定模型更改时,都会执行验证函数

<form name="password_form">
    <input type="password" ng-model="password" class="form-control" placeholder="Password" required>
    <input type="password" ng-model="confirm_password" class="form-control" placeholder="Password" required validate-equals="password">
</form>
<button ng-disabled="password_form.$invalid">save</button>