2014-04-26 84 views
0

我是新來的角度,並試圖找出範圍的工作原理。有角度的兒童範圍不能提及父母

我假設子範圍將繼承父範圍。請參閱angularjs wiki

在AngularJS中,子範圍通常從其父範圍通常原型繼承。

所以我創建pluncker

一些簡單的測試代碼,但是,當我從小孩範圍變更範圍變量,它反映變化父範圍是什麼?

這是爲什麼?我做錯什麼了嗎?

回答

0

僅當該屬性缺失時,作用域才從其父項繼承屬性。在您的代碼中,當您尚未輸入任何內容時,該屬性會丟失並從父範圍繼承,但是當您開始鍵入時,該屬性會在子範圍上創建爲單獨的屬性。在子作用域上創建屬性後,ng-model會不斷更新該子屬性的屬性。

如果你需要綁定到父作用域的屬性,你可以嘗試$parent.out_var1

<input type="text" ng-model="$parent.out_var1"> 

DEMO

+0

你的意思是NG-模型的指令再次聲明此屬性,因此它在重新定義孩子的範圍? – fuyi

+0

@xiaopang:ng-model創建屬性,因爲它在子作用域上不存在。在這種情況下,父範圍和子範圍都具有此屬性,但它們不同。 –

+0

謝謝。我認爲這是答案。但另一個問題是我怎麼能從子範圍引用父屬性呢?我從控制器知道,我可以參考它,但我怎麼能從視圖中引用它? – fuyi