2016-03-15 90 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

相关问题