2014-11-25 39 views
0

我已经知道你可以在指令中使用attr.$observe来观察属性是否改变。

是否有相当于观察元素内的文本?

<div my-directive ng-bind="myText || 'Watch me!!!'">Watch me!!!</div> 

在上面的例子中,我想看文本“看我!!!”。我更喜欢这样做,而不是$watch由于范围问题,绑定到指令的内容。

回答

1

观察DOM的变化是昂贵,也没有建立在Angular内部这样做。观察变化的范围是正确的方法。

如果您在确定方案时遇到了问题,那么也许在我组建更多的情况下,这也是我们可以提供的帮助。

+0

不,只是我懒惰。回想起来,你是完全正确的,而且我已经重构过,以便观察范围更简单。 – jdotjdot 2014-11-26 05:46:05

1

很可能会看到DOM的变化,这里有一个例子:

http://jsfiddle.net/kihu/t7zr71ma/5/

关键是要通过你想要观看一个函数返回的事物,如:

scope.$watch(function() { 
       return element.text(); 
      }, handleChange) 

但我认为@Enzey是对的,你应该避免观看DOM,而应该从角度范围绑定数据并观看它。