Ember组件属性不是孤立的

时间:2014-10-03 17:21:03

标签: ember.js

我遇到了解预期的Ember.Component隔离行为的问题。我的理解是,渲染同一组件的多个实例不应导致组件之间共享属性。

我看到相反的行为,其中更新组件上的属性(从组件本身内)更新当前在页面上呈现的该组件的其他实例上的相同属性。

以下是此问题的示例:http://jsbin.com/naworoyimoto/1/edit

这是一个错误还是我误解了Ember.Component中的隔离效果如何?

1 个答案:

答案 0 :(得分:17)

我认为您正在体验JavaScript对象引用的有趣特性。我前面遇到了这个问题,事实证明,因为我在类定义中的属性上定义数组,它导致该类的所有实例引用相同的数组对象。

我通常解决这个问题的方法是将我想要成为数组的属性设置为null,然后在init方法中设置数组。这可以确保每个实例都创建自己的数组,而不是与其他实例共享数组引用!

这里是我的jsbin示例的分支,我的修复已应用:http://jsbin.com/xulidefikuyu/1/