2014-11-25 37 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,而應該從角度範圍綁定數據並觀看它。