2013-08-21 16 views
0

在Visual Studio中使用ASP.Net Durandal模板。我添加了以下到main.js:爲Durandal項目添加不可見路線

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

這些鏈接那麼這兩個工作,但我不希望客戶端可用的導航,如果我刪除了這一行,然後鏈接不再起作用。有沒有簡單的方法將它設置爲不可見或者我是否在錯誤的地方進入了我的路線?

回答

3

如果您使用迪朗達爾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(); 

如果您使用迪朗達爾1.x中,我強烈建議升級到2.0。有多個錯誤修復以及一些重要的體系結構更改,從長遠來看,這將使您的生活更輕鬆。

如果這不是一種選擇,有一個在迪朗達爾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 }); 

隨着迪朗達爾1.x中,你需要檢查visible將每個路由添加到菜單集合之前的屬性。使用2.0時,buildNavigationModel函數將自動執行此操作。

+0

更新Durandal似乎已經淘汰了路由出於某種原因,現在變得「無法加載路由模塊」客戶端? – user1166905

+0

認爲它可能與以下行有關: var router = require('durandal/plugins/router');因爲我稍後使用它爲router.navigateTo(「#/ client /」+ data.ClientID); – user1166905

+0

解決了,不得不把:define(['plugins/router'],function(router)instead, – user1166905

相關問題