自定义AngularJS"确认密码"指令不起作用

时间:2015-06-24 23:50:19

标签: javascript angularjs validation

因为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,也许该版本不支持我正在做的事情。

有人看到了什么问题吗?

谢谢! 扎克

1 个答案:

答案 0 :(得分:1)

pwcheck应在您的标记中为pw-check

<input type="password" name="confirmPassword" 
             ng-model="newUser.confirmPassword" 
              placeholder="Retype Password" required pw-check="newUser.password" />