0
我正在編寫一個控制器,對給定控制器屬性更改作出反應。我正在爲它編寫測試,但是我意識到在更新模型的代碼之前正在調用$ watch回調。此外,在過早的$ watch回調調用和更新模型的代碼之後,$ watch回調不會再次被調用。
在我看來,$ watch回調函數在控制器實例化過程中被調用,並且沒有配置表達式觀察器等等。
你們認爲什麼?
我正在編寫一個控制器,對給定控制器屬性更改作出反應。我正在爲它編寫測試,但是我意識到在更新模型的代碼之前正在調用$ watch回調。此外,在過早的$ watch回調調用和更新模型的代碼之後,$ watch回調不會再次被調用。
在我看來,$ watch回調函數在控制器實例化過程中被調用,並且沒有配置表達式觀察器等等。
你們認爲什麼?
那麼,scope.$watch
應該這樣做,立即開火。這是最初的更新。它會進行最初的射擊,然後任何後續射擊只會因真正的變化而發生。如果newValue === oldValue
可以檢測到初始運行,其中這些是您的手錶回調的第一個和第二個參數。
至於爲什麼它不再被調用,你是否改變你的範圍屬性在正常的Angular上下文之外?如果是這樣,你需要一個scope.$apply
。