0

请参阅plnkr以查看代码。

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

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

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

object[field] = value

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

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

谢谢你的帮助。

4

1 回答 1

3

这种行为是预期的。用“<”表示单向绑定仅意味着 angular 不会监视组件端的更改,但如果您更改组件端的对象,原始对象仍将被修改。在官方 Angular 文档中也有提及。

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

于 2016-09-28T14:45:11.643 回答