2014-04-26 83 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