在加载时重置灰烬组件

Rub*_*Jr. 5 javascript ember.js

我有一个Ember.Component,它将项添加到空数组并在提交时返回数组.问题是,如果我离开包含Component的Route(在提交和不提交之后),然后再回到它,那么数组中最后的信息仍然存在.每次我使用组件导航到路线时,我都希望重置.

如果这是一条路线,我只需编写一个willTransitiondeactivate方法来重置我的属性.但由于它是一个组件,它没有那些方法,我不能(我知道)访问我希望从父路由重置的属性.那么,每次加载此路由时,如何将此数组重置为空(或重置整个组件)?谢谢!

GJK*_*GJK 8

更有可能的是,您没有正确设置正确使用的值.拿这些例子:

Ember.Component.extend({
    items: []
});

Ember.Component.extend({
    items: null,

    init: function() {
        this._super();
        this.set('items', []);
    }
});
Run Code Online (Sandbox Code Playgroud)

在第一个组件中,组件items每个实例共享相同的数组.因此,如果您添加一个项目,然后创建一个新组件,新组件仍然具有该项目(我认为这是您的问题).

在第二个组件中,您可以看到我itemsinit函数中设置了属性.当我设置属性时,我每次都将它设置为不同的数组.现在,每个组件都有自己的items属性.

没有你的代码很难说,但这似乎是你的问题.