重置加载烬组件

Reset Ember Component on Load

本文关键字:组件 加载      更新时间:2023-09-26

我有一个烬。组件,它将项添加到空数组中,并在提交时返回该数组。问题是,如果我离开包含组件的路由(提交和未提交之后),然后再回到它,最后在数组中的信息仍然在那里。我希望每次导航到带有该组件的路由时都被重置。

如果这是一条路由,我会简单地写一个willTransitiondeactivate方法来重置我的属性。但由于它是一个组件,所以它没有那些方法,而且我无法(据我所知)访问我希望从父路由中重置的属性。那么,我如何在每次加载这个路由时将这个数组重置为空(或重置整个组件)呢?谢谢!

更有可能的是,您没有正确设置您正在使用的值。以下是一些例子:

Ember.Component.extend({
    items: []
});
Ember.Component.extend({
    items: null,
    init: function() {
        this._super();
        this.set('items', []);
    }
});

在第一个组件中,组件的每个实例共享同一个items数组。所以,如果你添加一个项目,然后创建一个新组件,新组件仍然拥有该项目(我认为这是你的问题)。

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

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