$观察指令的对象属性

时间:2014-11-04 10:51:04

标签: angularjs

我的指令有一个独立的范围,它从封闭控制器接收对象作为属性。

app.directive('details', function() {
        return {
            restrict : 'E',
            scope : {
                device : '=device',
                .
                .
                .
            },
            templateUrl : '/details.html',
            link : function(scope, element, attrs) {
                attrs.$observe('device', function(value) {
                ...
                });
            }
        };
    });

在HTML中:

<details device='ctrlAlias.device' ...>

我在某处读到如果我想检查属性的变化,我需要使用$observe函数。但是,我看到的大多数示例仅对原始值使用$observe

我想知道我$observe如何device属性device.existdevice.id(布尔值)和attrs.$observe(字符串){{1}}?

1 个答案:

答案 0 :(得分:3)

您应该使用$watch

  

每当watchExpression发生更改时,都会注册一个侦听器回调函数。

然而,$observe是Attributes对象的方法

  

观察插值属性。

代码

scope.$watch(function() {
    return scope.device
}, function(newValue, oldValue) {    
}, true);

访问AngularJS : Difference between the $observe and $watch methods了解详情。