2013-10-06 56 views
4

我想有一个可以这样使用的属性指令:如何查看对象属性?

<div my-dir="{items:m.items, type:'0'}"></div> 

在我的指导,我可以把它变成像一个对象:

function (scope, element, attributes, modelController) 
{ 
    var ops = $.extend({}, scope.$eval(attributes.myDir)); 
} 

现在说m.items是一个数组。在某个地方,ajax调用会替换为新的阵列。我想看这个。

我怎样才能看m.items或为属性中的items属性键入的任何内容?手表应该是什么?

回答

6

您应该可以使用scope。$ watch来观察属性。当任何值改变时,Angular将调用整个对象的回调。

function(scope, elem, attrs) { 
    scope.$watch(attrs.myDir, function(val) { 
    // Do something with the new value, val. 
    }, true); 
} 

http://plnkr.co/edit/JBGqW8uFzh1eJ1Ppq3fT

随时模型的变化(在输入打字的东西)的指令将更新$表元素的HTML。

编辑我的答案:你想包括true作为最后一个参数来比较对象值,而不是引用。否则,您将运行摘要超过10次并获得例外。