我尝试创建一个指令,当输入字段被标记为无效时,该指令应该执行一些操作。对于这个例子,假设我有一个指令,检查输入是否是一个质数,并且我想创建一个指令,当元素无效时,向该元素添加一个类:
<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 }); }
也许我可以看范围上的一些变量,但我不知道要监视哪个变量。
那么,当模型的有效性改变时,我怎么能得到通知呢?