在一個頁面中,我有以下結構:如何更改AngularJS嵌套控制器中的頂級範圍變量?
- layoutController(在js控制器:$ scope.currentProject = 「」)
- {{currentProject.Name}}
- projectListController - (在JS控制器,I填充$ scope.currentProject與對象的值)
的問題是,一旦我設定的新值,{{ currentProject.Name}}保持空白。
什麼是缺失?
在一個頁面中,我有以下結構:如何更改AngularJS嵌套控制器中的頂級範圍變量?
的問題是,一旦我設定的新值,{{ currentProject.Name}}保持空白。
什麼是缺失?
當你在它獲得通過原型鏈繼承的,如果你重新定義一個孩子$作用域屬性父級別定義在$範圍屬性,你失去的參考。
因此,繼續的方式是在projectListController中,而不是將對象分配給currentProject,您應該將屬性複製到其中。或者將對象賦值給$ scope。$ parent.currentProject。
這是因爲子控制器創建父範圍的副本。
在你的嵌套控制器,你應該注入$ rootScope改用$parent.value
的$範圍
來訪問父控制範圍。
你應該嘗試和值默認爲空對象這樣
$scope.currentProject = ""
要
$scope.currentProject = {}
你不想用這種污染$ rootScope,所以最好使用$父。 – StuR
我知道。理想情況下,你想使用隔離範圍的指令,但這不是問題的一部分。 使用$ parent很粗略,因爲你會將你的projectListController綁定到你的layoutController。 – DrDyne