当导航到相同模块并使用不同数据查看时,Durandal重新绑定

时间:2014-03-19 10:55:39

标签: knockout.js durandal durandal-2.0 durandal-navigation

我的应用程序中有一对viewmodel / view用于显示不同的数据。显示的数据由某些用户输入生成,并且每组数据的单独路由都在路由器上注册。

问题是因为相同的view / viewmodel用于不同的路由,当它们之间导航时,view-viewmodel之间的绑定不会刷新。

连接到canReuseForRoute回调我设法让viewModel刷新,但视图没有刷新。

我尝试在cacheVews绑定上使用router,但视图仍未刷新。

如何在导航到使用相同视图/视图模型的其他路径时刷新路由器/路由组合?

编辑:(更多信息)挂钩binding回调我发现Durandal仅在第一次使用模块时才绑定视图。如果我尝试导航到具有相同模块(view / viewmodel)的其他路由,则不会再次调用binding回调。

1 个答案:

答案 0 :(得分:2)

尝试覆盖激活器as explained in this answer上的areSameItem。返回false应该让Durandal再次浏览整个页面生命周期,而我认为使用canReuseForRoute并不一定。