我可能缺少一些基本的东西,但是在构建导航时,我试图在 shell 中定义多个参数化路由。这个想法是所有这些路由都会将用户传递到同一个视图/虚拟机,但参数将确定在 ajax 调用之后显示的内容)。路由本身运行良好,但标题总是从列表中的第一条路由通过。
activate: function () {
router.makeRelative({moduleId: 'viewmodels'}).map([
{
route: 'grid/:page',
title: 'Title 1',
moduleId: 'grid',
nav: 3,
hash: '#grid/param1'
},
{
route: 'grid/:page',
title: 'Title 2',
moduleId: 'grid',
nav: 2,
hash: '#grid/param2'
},
{
route: 'grid/:page',
title: 'Title 3',
moduleId: 'grid',
nav: 4,
hash: '#grid/param3'
},
{
route: 'grid/:page',
title: 'Title 4',
moduleId: 'grid',
nav: 5,
hash: '#grid/param4'
}
]).buildNavigationModel();
};
因此,无论用户单击哪个生成的链接,标题始终返回为“标题 1”。导航顺序无关紧要。列表中的第一个物理对象将为所有链接提供标题。如果我将链接硬编码到 shell.html 中并在路由器中使用 splat,我就没有这个问题,但是,硬编码链接对于应用程序来说是不可行的也不可取的。
所以,问题是,我做错了什么?