为Durandal项目添加隐形路线

时间:2013-08-21 13:59:07

标签: durandal

在Visual Studio中使用ASP.Net Durandal模板。我在main.js中添加了以下内容:

router.mapNav('clients');
router.mapNav('client/:id');

这些链接都可以工作,但我不希望客户端在导航中可用,如果我删除该行,则该链接不再有效。是否有一种简单的方法可以将其设置为隐形或者我在错误的位置输入我的路线?

1 个答案:

答案 0 :(得分:3)

如果您使用的是Durandal 2.0,则可以为路由器导航指定更多选项,它看起来像这样:

//Durandal 2.0
router.map([
    { route: 'clients', title:'clients', moduleId: 'viewmodels/clients', nav: true},
    { route: 'client/:id', title:'client', moduleId: 'viewmodels/client', nav: false }
]).buildNavigationModel();

如果您使用的是Durandal 1.x,我强烈建议您升级到2.0。从长远来看,有多个错误修复以及一些重要的体系结构更改将使您的生活更轻松。

如果这不是一个选项,Durandal 1.x中有一种方法可以阻止路线出现在导航中:

//Durandal 1.x
router.mapRoute({ url: 'clients', name: 'clients', moduleId: 'viewmodels/clients', visible: true });
router.mapRoute({ url: 'client/:id', name: 'client', moduleId: 'viewmodels/client', visible: false });

使用Durandal 1.x,您需要先检查每条路线的visible属性,然后再将其添加到菜单集合中。使用2.0,buildNavigationModel函数将自动执行此操作。