在我的 Durandal 应用程序中,我配置了多个父路由器,其中一些还配置了子路由器。问题是,当用户在不同的父页面或子页面之间导航时,之前路由的绑定生命周期也会随着现有路由的绑定生命周期而被触发。
子路由器在父视图模型中配置,父路由器在shell.ts中配置,如 Durandal 文档中所述。
如果在我的 shell.ts 中,在路由器数据绑定属性中,我将属性cacheViews 设置为false并将alwaysTriggerAttach 设置为true。
<div data-bind="router:{cacheViews: false, alwaysTriggerAttach: true}"></div>
预期的结果是,当前路由正在加载时,不应加载前一个路由的绑定生命周期。例如,如果我们从#P2导航到#P1/C1,则不应加载 #P2 的绑定生命周期。