我正在用 durandal 开发一个 SPA 网站。
这是我的路由器的配置:
var routes = [{
url: 'profile',
moduleId: 'viewmodels/profile',
name: 'Profile',
visible: true
}, {
url: 'batchOverview',
moduleId: 'viewmodels/batchOverview',
name: 'Batche Overview',
visible: true
}, {
url: 'batch',
moduleId: 'viewmodels/batch',
name: 'Batche Detail',
visible: true
}, {
url: 'page',
moduleId: 'viewmodels/page',
name: 'Page',
visible: true
}];
当人们直接点击路由器时,地址栏中的url是这样的:
http://localhost:7778/#/batch
我想要的是当人们直接单击路由器时,我可以将参数添加到 url。网址可能如下所示:
http://localhost:7778/#/batch?pId=Gridsum&batchId=3
现在,当人们单击自定义按钮时,我可以使用 router.navigateTo(url) 来实现。但是当人们直接单击路由器并动态更改参数时,我需要做到这一点。
我不知道如果我在 router.map() 中设置一个 observable 是否可以。但我认为这不是一个好方法。有没有更好的方法来解决它?