我正在编写一个指令,需要注意使用特定类更新的元素,比如.ng-invalid
。如您所知,.ng-invalid
被添加到表单无效的元素中。
我需要观察这些元素以确定是否添加或删除了类。
我怎样才能做到这一点?
提前致谢
答案 0 :(得分:6)
你可以$观看一个长度为$(".ng-invalid")
的函数:
scope.$watch(function() {
return $(".ng-invalid").length;
}, function (newVal, oldVal) {
if(newVal !== oldVal) {
console.log('changed!', newVal, oldVal);
// do your changes here
}
})
Fiddle。在小提琴中,我将ng-minlength="2"
添加到第一个input
。在该字段中键入两个字符以查看$ watch触发器。
答案 1 :(得分:1)
您的目的是否足以观看FormController的$invalid
属性?这将通知您表单整体无效状态的更改,例如:
// Somewhere in your directive; formCtrl is the FormController
scope.$watch(function() {
return formCtrl.$invalid;
}, function(isInvalid, wasInvalid) {
// ...
});