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