2016-09-20 3 views
0

부울에 경로를 추가하지 않으려 고합니다. 조건이 충족되면 경로가 표시되고 navbar에 표시되고 추가되지 않으면 추가되지 않습니다.Aurelia에 경로를 추가하거나 추가하지 않음

나는 탐색 변경 trided 한하십시오 condtion에 따라 옵션을,하지만 난 뭔가 ...

{ 
    route: 'aRoute', 
    moduleId: 'modules/something/mySite, 
    nav: cond ? true : false, 
    title: 'mySite', 
    isStatic: false 
} 

은 아마 내가 바보 오전하지만이에 도움이 필요를 놓친 .. :/

+0

문제가 해결 되었습니까? 지금 만날거야. – sibi

답변

1

당신은 당신이 원하는 것을 할 수 있도록해야 다음 게시물 : http://odetocode.com/blogs/scott/archive/2016/05/31/dynamically-add-routes-in-aurelia.aspx

그것은을 추가하는 방법을 보여줍니다 경로 동적으로이 작업을 수행하여

this.router.addRoute(
     { route: "secret", name: 'secret', moduleId: "app/secret", 
      title:"Secret", nav:true 
     } 
    ); 

다음 (당신은 분명히 누락)이 메소드 호출로 라우터 새로 고침 :

this.router.refreshNavigation(); 
1

100 % 확신 할 수는 없지만 경로가 아마 한 번 빌드되어 재사용됩니다. 최소한 탐색 모델의 일부입니다 (nav === true). 즉, nav에 동적 표현식을 사용할 수 없으므로 한 번만 처리됩니다.

네비게이션 바에 경로를 표시 할 때만 필요하면 settings property을 사용하여 해결 방법을 만들어 경로를 어떻게 든 표시하고 탐색 바를 만들 때 조건 확인을 할 수 있습니다.

{ 
    route: 'aRoute', 
    moduleId: 'modules/something/mySite, 
    nav: true, 
    title: 'mySite', 
    settings: { occasionallyVisible: true } // add your own properties here... 
} 

나는 settings.occasionallyVisible 속성을 사용했지만 원하는대로 추가 할 수 있습니다. 이 settings 속성이 없습니다 또는 settings.occasionallyVisible이 falsy이다 OR condtrue 경우

<li repeat.for="route of router.navigation" 
    if.bind="!route.settings || !route.settings.occasionallyVisible || cond"> 
    <a href.bind="route.href">${route.title}</a> 
</li> 

탐색 경로가 표시됩니다. 물론 cond이 필요합니다. 당신이 더 나은 대답을 :) 얻을 때까지

우아하지,하지만이 작업을 완수해야

관련 문제