2016-03-15 40 views
1

在角2中有一種方法可以保持導航路徑活着,即使它沒有導航到?我的目的是我試圖把一個webgl畫布放到角度2的路線中。現在,默認情況下,每當路由導航到它時,初始化組件並加載所有需要的資源,然後在瀏覽它時會銷燬組件並從Dom中刪除視圖。這在使用webgl時會導致2個問題,主要問題是隻有特定數量的webgl實例被允許,否則會導致圖形卡超載。因此,如果路線多次導航和離開,則有可能達到限制,因爲每次路線導航時都會創建新的webgl實例。另外,webgl經常需要複雜的變量和資源,並且能夠保持這些變量處於活動狀態以便它們不必再次加載,甚至在某些情況下甚至可以在路徑之外使用它們。Angular 2保持路由仍然活着,即使沒有導航到它

所以我提出的解決方案是保持組件活着,但隱藏,使資源和變量保持活着有沒有辦法做到這一點?

回答

3

我認爲你可以嘗試使用CanReuse接口及其routerCanReuse。如果組件實現了此方法並且它返回true,則組件不會被銷燬,並且相同的組件實例將在路徑中重複使用:

@Component({ 
    selector: 'my-cmp', 
    template: ` 
    (...) 
    ` 
}) 
class MyCmp implements CanReuse, OnReuse { 
    routerCanReuse(next: ComponentInstruction, prev: ComponentInstruction) { 
    return true; 
    } 
} 
+0

這正是我一直在尋找的。我很好奇,雖然有另一個告訴它在導航到之前創建組件。在應用初始化期間 – Binvention

相關問題