1
「在Angular中被認爲是通過對象上的屬性而不是原始對象本身來綁定引用的最佳做法。」角度數據綁定 - ng-book聲明您應該按對象屬性進行綁定。爲什麼?
摘錄自:Ari Lerner。 「ng-book」。(最新版本的第66頁)。
我還沒有在其他地方看過這個參考,並想知道它是否真的有什麼區別?
「在Angular中被認爲是通過對象上的屬性而不是原始對象本身來綁定引用的最佳做法。」角度數據綁定 - ng-book聲明您應該按對象屬性進行綁定。爲什麼?
摘錄自:Ari Lerner。 「ng-book」。(最新版本的第66頁)。
我還沒有在其他地方看過這個參考,並想知道它是否真的有什麼區別?
這是爲了避免兒童範圍問題。角度對象上的範圍有些奇怪的東西。基本上,範圍上的對象有範圍繼承,但不包括基元。這是我遇到的一個問題。
<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將嘗試在當前範圍中查找對象,如果它不能,則會上升一級並嘗試在作用域的父級上找到一個對象。所以你可以使用範圍繼承與對象。出於某種原因,它不會對基元進行這樣的操作。所以爲了避免兒童範圍問題,最好將你的屬性附加到對象上。
謝謝,它確實有道理,但我很驚訝沒有更正式的迴應。 –