gpt4 book ai didi

javascript - 当绑定(bind)项是对象并动态修改时,单向绑定(bind)不起作用

转载 作者:行者123 更新时间:2023-11-28 18:22:01 27 4
gpt4 key购买 nike

请参阅plnkr用于检查代码。

我对 AngularJS 组件真的很陌生。我编写了两个具有完全相同绑定(bind)的简单 AngularJS 组件。

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

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

object[field] = value

如果组件未在其 Controller 中克隆对象,单向绑定(bind)将不起作用(请参阅 plnkr 中的onewaybindingfail 组件)。但是,通过在组件的 Controller 中克隆对象,一切都很好。

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

感谢您的帮助。

最佳答案

此行为是预期的。用“<”表示单向绑定(bind)意味着 Angular 不会监视组件端的更改,但如果更改组件端的对象,原始对象仍将被修改。 Angular官方文档here中也提到了这一点.

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

关于javascript - 当绑定(bind)项是对象并动态修改时,单向绑定(bind)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39750664/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com