0

我试图弄清楚如何使用 Durandal v2.1.0 路由器在使用router.navigate() 的视图之间导航;功能。我已经能够在两个视图之间来回导航,但是每​​次重新创建视图时。我希望能够缓存这些视图,因此如果路由器路由到已经激活的视图,一旦它会简单地从缓存中获取现有视图(以及它的当前视图模型状态,例如可观察值等......) .

我虽然可以在 shell 中的路由器绑定中使用cacheViews: true选项,但这似乎不起作用。任何帮助将不胜感激。

4

1 回答 1

0

所以......事实证明,默认情况下缓存是有效的,我误解了缓存系统的工作原理。就我而言,我一直在视图模型的激活函数中执行所有视图初始化功能。但是,每次您路由到新视图时都会执行此激活功能,因此每次导航到视图时都会重新运行我的初始化功能。一个简单的解决方案是在 activate 函数中放置一个ifActivated标志,并且仅在这是第一次激活视图时才运行初始化功能。

于 2015-05-13T01:32:01.460 回答