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