2014-10-07 95 views
0

我正在使用Durandal中的子路由器進行標籤控制。關閉Durandal子路由器的歷史記錄

但是,無論何時更改選項卡,它都會創建歷史事件。一次又一次。它使我的「關閉」按鈕變得毫無意義,因爲我不能再router.navigateBack()(需要很多次)。

有沒有辦法導航回當前的父路線,或使子路由器不創建歷史?

var childRouter = m_router 
    .createChildRouter() 
    .makeRelative({ moduleId: 'viewmodels/manage/bill/center', fromParent: true }) 
    .map([ 
     { route: ['contract', ''], moduleId: 'contract', title: 'Contracts', nav: true }, 
     { route: 'job', moduleId: 'job', title: 'Jobs', nav: true }, 
     { route: 'order', moduleId: 'order', title: 'Orders', nav: true } 
    ]).buildNavigationModel(); 

謝謝。

回答

1

這聽起來像你想要做的只是不放入一個條目的歷史。你可以這樣做 -

router.navigate('your/hash/here', { replace: true, trigger: false }); 

當你的孩子的路由器正在改變路線。

http://durandaljs.com/documentation/Using-The-Router.html#triggering-navigation

+0

這是爲了觸發手動導航。但是,如果用戶點擊構成選項卡的散列的「」鏈接,它將創建歷史記錄。 – Tim 2014-10-07 13:21:11

+0

只需將錨點映射到函數即可。 – 2014-10-07 14:19:39

+0

我承認這樣做可行,但我想避免始終綁定錨。 – Tim 2014-10-07 14:24:00