Angularjs 谁能给我解释一下这个密码匹配指令吗?
谁能解释一下这段代码是如何工作的吗 HTML标记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
<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>