我试图弄清楚如何使用Durandal v2.1.0路由器使用 router.navigate(); 功能在视图之间导航。我能够在两个视图之间来回导航,但每次重新创建视图。我希望能够缓存这些视图,以便路由器路由到一个已经被激活的视图,一旦它只是从缓存中获取现有视图(以及它的当前视图模型状态,如可观察值等) ...)。
我虽然我可以在shell中的路由器绑定中使用 cacheViews:true 选项,但这似乎并没有起作用。任何帮助将不胜感激。
答案 0 :(得分:0)
所以......事实证明,缓存默认工作正常,我误解了缓存系统的工作原理。就我而言,我一直在viewmodel的 激活 功能中执行所有视图初始化功能。但是,每次路由到新视图时都会执行此 激活 功能,因此每次导航到视图时都会重新运行初始化功能。一个简单的解决方案是在激活函数中放置一个 ifActivated 标志,并且只有在第一次激活视图时才运行初始化功能。