我有一个Ember.Component,它将项添加到空数组并在提交时返回数组。问题是,如果我离开包含Component的Route(在提交和不提交之后),然后再回到它,那么数组中最后的信息仍然存在。每次我使用组件导航到路线时,我都希望重置。
如果这是一条路线,我只需编写一个willTransition
或deactivate
方法来重置我的属性。但由于它是一个组件,它没有那些方法,我不能(我知道)访问我希望从父路由重置的属性。那么,每次加载此路由时,如何将此数组重置为空(或重置整个组件)?谢谢!
答案 0 :(得分:8)
更有可能的是,您没有正确设置正在使用的值。举几个例子:
Ember.Component.extend({
items: []
});
Ember.Component.extend({
items: null,
init: function() {
this._super();
this.set('items', []);
}
});
在第一个组件中,组件的每个实例共享相同的items
数组。因此,如果您添加一个项目,然后创建一个新组件,新组件仍然具有该项目(我认为这是您的问题)。
在第二个组件中,您可以看到我在items
函数中设置了init
属性。当我设置属性时,我每次都将它设置为不同的数组。现在,每个组件都有自己的items
属性。
如果没有您的代码,很难说,但这似乎是您的问题。