2013-05-30 27 views
2

=或=属性 - 设置一个本地范围 属性并经由ATTR属性的值 定义名称的父范围属性之间的双向绑定。 ...对parentModel的任何更改将在localModel中反映 ,并且localModel中的任何更改将反映在 parentModel中。指令=或=属性不双向

这是来自Angular文档,我已经阅读了一些文章,说你创建带指令的独立范围时不会获得双向绑定。我发现很难理解。我想创建一个小部件,并传递状态,但我也希望能够将该状态绑定到父范围中的其他指令。

从我的实验中,您不能对指令中的作用域进行更改,并在其父控制器/其他指令中找到更改。它是否正确?

回答

2

是的,没有隔离范围(例如,您已经为您的指令添加了一个范围:{}}的角度就是这样,一个单独的范围在原型继承链中没有链接。这意味着默认情况下,您对指令中的范围所做的更改不会反映回该指令的父元素范围。

范围创建中的'='局部类型设置了对父范围的可见绑定。然后,对隔离的范围变量的更改将反射回来。确保你的改变被你的指令中的locals范围所识别,否则什么都不会传播(例如,试着看$/watch the locals变量以确保指令中发生了变化,如果不是,你可能需要根据你已经在你的指令中绑定)。