是否可以"观察"属性的变化

iLe*_*ing 54 angularjs angularjs-directive

是否可以"观察"指令的ui变化?类似的东西:

.directive('vValidation', function() {
    return function(scope, element, attrs) {
        element.$watch(function() {
            if (this.hasClass('someClass')) console.log('someClass added');
        });
    }
})
Run Code Online (Sandbox Code Playgroud)

Cai*_*nha 86

是.您可以使用attr.$observe,如果你在属性利用插值.

但是,如果这不是插值属性,并且您希望它从应用程序中的其他位置更改(非常不推荐,请阅读常见陷阱),而不是$watch函数返回:

scope.$watch(function() {
    return element.attr('class'); 
}, function(newValue){
    // do stuff with newValue
});
Run Code Online (Sandbox Code Playgroud)

无论如何,它可能是你最好的方法是改变改变元素类的代码.哪个时刻会改变?


Ket*_*tan 38

attrs.$observe('class', function(val){});
Run Code Online (Sandbox Code Playgroud)