2017-04-13 43 views
1

到目前为止,我已经尝试如何摧毁Aurelia中的视图?

@inject(ViewSlot) 
class MyViewModel { 
    constructor(vs) { 
    this.vs = vs; 
    } 
    created(owner, meView) { 
    this.view = meView; 
    } 

    remove() { 
    this.vs.removeAll(); // and some other methods in view but no luck 
    } 
} 

如何实现这一目标?我如何确保在删除视图时正确清理视图资源?

回答

1

Aurelia提供了两种生命周期方法供您从ViewModel,detachedunbind中进行选择。通常,Aurelia会处理将这些方法(如果存在的话)用于您使用的任何视图资源。

您需要在ViewSlot实例上调用removeAll()的原因是什么?

+0

我正在玩一个标签面板组件,可关闭的标签。关闭时,我不知道如何以一种不需要调用'element.remove()'的方式销毁组件。当调用'view.detached()'和'view.unbind()',我不知道如何从它的父对象注销它。基本上我不知道如何在我想销毁视图时正确释放资源。 – bigopon

+0

从我的问题中可以看出,你不需要做任何事情来“清理”视图资源。如果你有奥里利亚以外的资源需要销毁,请按@Ashley所述,以“分离”和“解除绑定”的方式执行此操作。 –