当绑定项为对象并动态修改时,单向绑定不起作用

Posted

技术标签:

【中文标题】当绑定项为对象并动态修改时,单向绑定不起作用【英文标题】:one-way binding does not work when binding item is object and modified dynamically 【发布时间】:2017-02-06 14:53:14 【问题描述】:

请查看plnkr 以查看代码。

我真的是 AngularJS 组件的新手。我编写了两个具有完全相同绑定的简单 AngularJS 组件。

 bindings:  value:'@', field:'@', object: '<', callback: '&'    

我通过object 将一个javascript 对象传递到我的组件中。 field 指定我的 JS 对象中的属性名称。最后value指的是JS对象属性的新值。

object[field] = value

如果组件未在其控制器中克隆 object,则单向绑定不起作用(请参阅 plnkr 中的 onewaybindingfail 组件)。但是,通过在组件的控制器中克隆 object 一切都很好。

我想知道这种行为是预期的吗?如果是,为什么?还是我错过了什么?。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

这种行为是预期的。用“here 中也提到了这一点。

因此,如果您需要使用它,建议您制作该对象的副本。最好使用回调函数来更改父对象。这在官方 Angular 文档中也有更详细的解释。

【讨论】:

以上是关于当绑定项为对象并动态修改时,单向绑定不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用动态项绑定到Listbox的DataTemplate中的控件DependencyProperty不起作用

Vue动态绑定到类不起作用

WPF双向绑定不起作用

Vue双向绑定失效? 数组对象双向绑定不成功?

为啥动态组件创建中的属性绑定不起作用?

淘汰赛foreach绑定不起作用