2016-09-20 22 views
0

ブール値にdeppendingルートを追加しようとしています。条件が満たされていると、ルートが表示され、navbarに表示され、そうでなければ追加されません。Aureliaにルートを追加するか追加しない

私はNAVを変更する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%確信していませんが、ルートはおそらく1回構築され、再利用されます。少なくともナビゲーションモデル(nav === true)の一部です。つまり、navの動的表現は1回だけ処理されるため、動的表現を使用できません。

ナビゲーションバーにルートを表示する目的でのみ必要な場合は、settings propertyを使用して回避策を作成して、何らかの方法で経路をマークし、navbarの作成時に条件チェックを行うことができます。

{ 
    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はあなたが必要とする条件になります。

ない、次のポストはあなたがやりたいことに役立つはずとしてエレガントな、しかし、あなたがより良い答えを得るまで、それは仕事を成し遂げる必要があります:)

関連する問題