Javascript Angularjs确认密码指令:为什么看不到键盘输入?

Javascript Angularjs确认密码指令:为什么看不到键盘输入?,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我正在Angular.js中构建自己的“确认密码”指令。我从中得到了灵感 我的指示: directives.directive('pwCheck', function(){ return { require: 'ngModel', link: function(scope, elem, attrs, ctrl){ var pw1 = attrs.pwCheck; var pw2 = attrs.ngModel; scope.$wat

我正在Angular.js中构建自己的“确认密码”指令。我从中得到了灵感

我的指示:

directives.directive('pwCheck', function(){
return {
    require: 'ngModel',
    link: function(scope, elem, attrs, ctrl){
        var pw1 = attrs.pwCheck;
        var pw2 = attrs.ngModel;
        scope.$watchGroup([pw1,pw2],function(value){                                                                                           
            console.log(value);                                                                                                                
            ctrl.$setValidity('pwmatch', value[0] === value[1]);                                                                               
        });                                                                                                                                    
    }                                                                                                                                          
}                                                                                                                                             
});
我的表格:


以及:


但是,
watchGroup
似乎无法捕获“newpassword”中的更改(击键)。 指令中的
console.log()
将为
值[0]
打印
未定义的
,同时为
值[1]
打印正确的输入

我想不出问题出在哪里。有什么线索吗?

我用你的代码设置了一个程序,它似乎工作正常。但请记住,除非满足所有验证要求,否则不会填充第一次输入的
ng model

ng-pattern="/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])/" ng-minlength="8" ng-maxlength="20"
如果使用有效密码(例如
abcd1234
)进行测试,您将看到两个值都已填充,并且两个输入中的击键都已拾取

从:

ngModel的值不会被设置,除非它通过了对 输入字段。例如:电子邮件类型的输入必须在 形式user@domain.


感谢@sheilak,这就是问题所在:“除非所有验证都满足要求,否则不会填充您第一次输入的ng模型”!