Knockout.js DurandalJS子路由清除订阅

Knockout.js DurandalJS子路由清除订阅,knockout.js,durandal,Knockout.js,Durandal,在一个有子路由器的页面上,我有一个带有KnockoutJS绑定(KnockoutObservable)的viewmodel。当我浏览此页面时,我能够验证viewmodel中的KnockoutObservable属性是否已订阅,表明它们已绑定。通过控制台,如果我在viewmodel中手动编辑KnockoutObservable值,则视图中显示的值会更改。这里没什么令人兴奋的 但是,当导航到子路由时,“父”路由上的所有订阅都会被删除,并且当我尝试在控制台中手动编辑KnockoutObservable

在一个有子路由器的页面上,我有一个带有KnockoutJS绑定(KnockoutObservable)的viewmodel。当我浏览此页面时,我能够验证viewmodel中的KnockoutObservable属性是否已订阅,表明它们已绑定。通过控制台,如果我在viewmodel中手动编辑KnockoutObservable值,则视图中显示的值会更改。这里没什么令人兴奋的

但是,当导航到子路由时,“父”路由上的所有订阅都会被删除,并且当我尝试在控制台中手动编辑KnockoutObservable值时,它不会修改显示的视图


这是正常的行为吗?这是一个糟糕的设计吗?

不确定是谁对这个问题投了赞成票,但没有代码来显示这个问题,因此几乎不可能在这里帮助您。从您的问题中,我只能假设您对durandal一点也不熟悉。我的理解是,您想知道为什么一个viewmodel在更多视图上不处于活动状态,这可能是因为每个视图都应该有自己的viewmodel。我目前正在构建一个VS解决方案示例,用于概念验证。这将更容易理解(和解释!)@Dominicus:不一定;可以将组合视图绑定到现有上下文,如中的第一个可视化组合示例所示。它甚至可以是有用的。