2016-02-13 61 views

回答

0

這是爲了避免兒童範圍問題。角度對象上的範圍有些奇怪的東西。基本上,範圍上的對象有範圍繼承,但不包括基元。這是我遇到的一個問題。

<input ng-model="theModelOnMyScope" /> 

$scope.theModelOnMyScope = "This is the model"; 

看起來不錯吧?但是在某些情況下,它不會更新您正在編輯的控制器的範圍,因爲角度可能爲輸入中的ng模型創建childScope,具體取決於您的頁面的結構。現在,這是解決這個特定問題的方法。

<input ng-model="anObject.theModelOnMyScope" /> 

$scope.anObject = {theModelOnMyScope:"This is the model}; 

而且這將工作。原因在於,如果視圖上的引用屬性是對象的屬性,Angular將嘗試在當前範圍中查找對象,如果它不能,則會上升一級並嘗試在作用域的父級上找到一個對象。所以你可以使用範圍繼承與對象。出於某種原因,它不會對基元進行這樣的操作。所以爲了避免兒童範圍問題,最好將你的屬性附加到對象上。

+0

謝謝,它確實有道理,但我很驚訝沒有更正式的迴應。 –