因为AngularJS没有本地"确认密码"功能,我今天正在编写自己的应用程序。我在网上做了很多教程,并且正在关注K Scott Allen在Odetocode.com blog
撰写的非常受欢迎的教程。我的版本是这样的:
指令
(works|texts)(\/.+?)(\/.+?)?\/
该指令非常明显,它监视其他模型值,每次更改时,检查两者是否相等。当他们最终做的时候,我的自定义表单验证" pwCheck"返回true,这应该允许提交表单。当它返回false时,字段下方的错误消息将显示,表单将无效。
HTML
angular.module('dashboard').directive('pwCheck', function() {
return {
require: 'ngModel',
scope: {
otherModelValue: '=pwCheck'
},
link: function(scope, element, attributes, ngModel) {
ngModel.$validators.pwCheck = function(modelValue) {
return modelValue == scope.otherModelValue;
};
scope.$watch('otherModelValue', function() {
ngModel.$validate();
});
}
};
});
据我所知,这应该有效。我非常仔细地遵循斯科特制定的计划,而且我的代码逻辑中没有任何缺陷。我正在使用AngularJS的v1.2.28,也许该版本不支持我正在做的事情。
有人看到了什么问题吗?
谢谢! 扎克
答案 0 :(得分:1)
pwcheck
应在您的标记中为pw-check
。
<input type="password" name="confirmPassword"
ng-model="newUser.confirmPassword"
placeholder="Retype Password" required pw-check="newUser.password" />