2014-10-07 9 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

+0

앵커를 대신 함수에 매핑하십시오. –

+0

나는 그것이 효과가 있다고 인정하지만 항상 앵커를 함수에 바인딩하는 것을 피하고 싶습니다. – Tim