javascript - 比较angularjs指令中的两个字段

标签 javascript angularjs angularjs-directive angularjs-scope

我正在尝试创建可用于比较多个项目中的两个字段的指令。

标记:

<div class="form-group">
<input  ng-model="user.password"  type="password" name="password"  />
</div>
<div class="form-group">
<input  ng-model="user.confpassword" ng-compare="password" name="confpassword" type="password"  />
<p ng-show="registrationform.password.$error.ngcompare" class="help-block">Password's don't match</p>

指令:

 "use strict";
 angular.module('app.directive.ngCompare', []).directive('ngCompare', function () {

return {
    require: 'ngModel',
    link: function (scope, element, attrs, ngModelController)
    {
           ngModelController.$parsers.unshift(function (viewvalue) {
            console.log(scope); // doesnot contain password field object
            console.log(viewvalue); // gives me value of confpassword field
            console.log(scope[attrs.ngCompare]); // undefined
        });


    }

}});

我还没有完成我的指令的编写,但是,在开发期间,当我在控制台范围内时,我没有获得第一个密码的值,但我获得了 confpassword 的值。我将这个指令作为“app.directive.ngCompare”包含在我的主应用程序中。是因为我没有得到密码的值吗?

我使用的是 Angular 版本 1.3.9。我知道那里有很多类似的指令,但我需要逐步弄清楚它们是如何运行的,所以开始从头开始创建。是否有任何其他方法可以使用 angularjs 技术而不是 jquery 方法来获取密码的值。

最佳答案

到目前为止给出的答案的问题在于它们都创建了一个隔离范围。这意味着您不能在同一输入或另一个指令上使用其他指令。

可以通过修改上面的内容来解决这个问题:

.directive("compareTo", function() {
    return {
        require: "ngModel",
        link: function(scope, element, attrs, ctrl) {

            ctrl.$validators.compareTo = function(val) {
                return val == scope.$eval(attrs.compareTo);
            };

            scope.$watch(attrs.compareTo, function() {
                ctrl.$validate();
            });
        }
    };
});

关于javascript - 比较angularjs指令中的两个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28063107/

相关文章:

javascript - 如何访问 Angular 指令中的元素?

javascript - 从 vuex store 模块访问全局 vue 变量

javascript - Google map API - 将鼠标悬停在标记上并显示图像

javascript - jQuery 日期选择器在 AngularJS 中不起作用

javascript - 表刷新时保持行下拉

javascript - 调用子指令方法的 Angular 指令

javascript - AngularJs指令嵌入错误和@绑定(bind)

javascript - EmberJS - 根据索引设置事件

javascript - Backbone 插入位置和移位模型

javascript - 有什么方法可以设置 HighCharts 热图数据的最小值和最大值吗?