我的指令有一个独立的范围,它从封闭控制器接收对象作为属性。
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.exist
,device.id
(布尔值)和attrs.$observe
(字符串){{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了解详情。