AngularJS指令观察有效性

前端之家收集整理的这篇文章主要介绍了AngularJS指令观察有效性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我尝试创建一个指令,当输入字段被标记为无效时,该指令应该执行一些操作。对于这个例子,假设我有一个指令,检查输入是否是一个质数,并且我想创建一个指令,当元素无效时,向该元素添加一个类:
<input type="text" ng-model="primeNumber" validate-prime invalid-add-class="error">

validate-prime使用ng-model上的解析器和格式化程序来更新模型的有效性。

现在我想要invalid-add-class指令在模型无效时添加类“error”,并在有效时删除它。换句话说,它应该监视模型控制器的$ valid(或$ invalid)属性。但是,我不知道如何让这个工作。我试过了:

link : function(scope,element,attrs,ctrl) {
    ctrl.$watch("$valid",function(newVal,oldVal) {
    //never fired
    });
}

也许我可以看范围上的一些变量,但我不知道要监视哪个变量。

那么,当模型的有效性改变时,我怎么能得到通知呢?

如果您有一个< form>,添加一个名称(假设’myForm’)和输入的名称(假设myInput)。你应该能够通过以下方式观看:
scope.$watch('myForm.myInput.$valid',function(validity) {})

如果你没有表格,你可以随时观看一个功能。这条路:

scope.$watch(function() { return ctrl.$valid; },function(validity){});

你可以阅读更多关于表单方法here

猜你在找的Angularjs相关文章