2012-12-17 51 views
0

我正在編寫一個控制器,對給定控制器屬性更改作出反應。我正在爲它編寫測試,但是我意識到在更新模型的代碼之前正在調用$ watch回調。此外,在過早的$ watch回調調用和更新模型的代碼之後,$ watch回調不會再次被調用。

在我看來,$ watch回調函數在控制器實例化過程中被調用,並且沒有配置表達式觀察器等等。

你們認爲什麼?

回答

2

那麼,scope.$watch應該這樣做,立即開火。這是最初的更新。它會進行最初的射擊,然後任何後續射擊只會因真正的變化而發生。如果newValue === oldValue可以檢測到初始運行,其中這些是您的手錶回調的第一個和第二個參數。

至於爲什麼它不再被調用,你是否改變你的範圍屬性在正常的Angular上下文之外?如果是這樣,你需要一個scope.$apply

相關問題