2

= 或 =attr - 在本地范围属性和通过 attr 属性值定义的 name 的父范围属性之间设置双向绑定。...对 parentModel 的任何更改都将反映在 localModel 中,并且 localModel 中的任何更改都将反映在 parentModel 中。

这是来自 Angular 文档,我读过几篇文章说在使用指令创建隔离作用域时不会进行双向绑定。我觉得很难理解。我想创建一个小部件,传入状态,但我也希望能够将该状态绑定到父范围内的其他指令。

从我的实验中,您无法更改指令中的范围并在其父控制器/其他指令中获取更改。它是否正确?

4

1 回答 1

2

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

范围创建中的“=”本地类型设置了到父范围的可见绑定。然后对隔离范围变量的更改将被反映回来。确保您的更改被指令中的 locals 范围识别,否则不会传播任何内容(例如,尝试监视/$watch locals 变量以确保指令中发生更改,如果没有,您可能需要 $apply 取决于如何你已经在你的指令内绑定)。

于 2013-05-30T16:31:38.650 回答