2017-04-13 45 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所述,以「分離」和「解除綁定」的方式執行此操作。 –