2016-09-20 4 views
0

Ich versuche, eine Route hinzufügen, die auf einem Boolean, also wenn die Bedingung erfüllt ist, wird die Route anzeigen und in der Navbar sein, und wenn nicht, wird es nicht hinzugefügt.Hinzufügen oder nicht Hinzufügen von Route in Aurelia

Ich habe trided nav zu ändern: auf einem condtion je Option, aber ich habe etwas ...

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

Wahrscheinlich auf das ich bin dumm, aber ich brauche Hilfe ..:/

+0

Haben Sie das Problem gelöst? Ich treffe das selbe jetzt. – sibi

Antwort

1

Ich bin mir nicht 100% sicher, aber Routen werden wahrscheinlich einmal gebaut und wiederverwendet, zumindest die, die Teil des Navigationsmodells sind (nav === true). Das würde bedeuten, dass Sie keinen dynamischen Ausdruck für nav verwenden können, da dieser nur einmal verarbeitet würde.

Wenn Sie dies nur zum Anzeigen der Route in der Navigationsleiste benötigen, können Sie eine Problemumgehung mit settings property erstellen, um die Route irgendwie zu markieren und die Zustandsprüfung beim Erstellen der Navigationsleiste durchzuführen.

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

verwendete ich settings.occasionallyVisible Eigenschaft, aber Sie können hinzufügen, was Sie wollen.

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

Navigationsroute wird angezeigt, wenn es nicht settings Eigenschaft hat OR settings.occasionallyVisible ist falsy OR cond ist true. Natürlich wäre cond dieser Zustand, den Sie brauchen.

nicht so elegant, aber es sollte die Arbeit erledigen, bis Sie die bessere Antwort bekommen :)

Verwandte Themen