【发布时间】:2013-04-09 10:22:17
【问题描述】:
我尝试创建一个指令,当输入字段被标记为无效时应该执行一些操作。对于这个例子,假设我有一个指令来检查输入是否是素数,并且我想创建一个指令,当它无效时向元素添加一个类:
<input type="text" ng-model="primeNumber" validate-prime invalid-add-class="error">
validate-prime 使用 ng-model 上的解析器和格式化程序来更新模型的有效性。
现在我希望 invalid-add-class 指令在模型无效时添加类“错误”,并在模型有效时将其删除。换句话说,它应该监视模型控制器的 $valid(或 $invalid)属性。但是,我不知道如何使它工作。我试过了:
link : function(scope, element, attrs, ctrl) {
ctrl.$watch("$valid", function(newVal, oldVal) {
//never fired
});
}
也许我可以在范围内观察一些变量,但我不知道要观察哪个变量。
那么当模型的有效性发生变化时如何通知我呢?
【问题讨论】:
-
如果你能分享你的指令就好了!
-
我不记得我到底用它做什么了,但 CaioToOn 的第二个解决方案几乎已经是整个链接功能了。当有效性改变时,只有第二个函数的主体应该填充你想要的任何操作。
标签: angularjs