Bonne façon de faire de la navigation avec la Braise
Quel est le "droit chemin" (ou au moins les options, si il n'y a pas de "Braise manière" de le faire) pour une barre latérale de navigation? Dois-je être à la recherche à ContainerViews en quelque sorte, ou devrais-je simplement utiliser la nouvelle fonction de prise et le bâton de la navigation à l'intérieur de ma demande en vue?
En outre, quelle est la "bonne façon" de définir une .classe active sur un li en fonction de l'URL (je suis en utilisant le routage)? Est-il une sorte de quelqu'un pour cela?
Vous devez vous connecter pour publier un commentaire.
<date de mise à Jour="2013-01-16">
Les exemples précédents ne sont plus valables depuis les récentes évolutions dans le Routeur de l'API, donc je ne vais pas corriger ces. Toutes les applications à l'aide de l'ancien routeur doit migrer dès que possible, au plus tard.
Voici une mise à jour du violon:
Source |
Démo
Je vais être le maintien de la/fixation/ajout de fonctionnalités de chaque tellement souvent.
Modifier sur 3 Avr 2013:
Alternative de l'Échantillon - WIP: source | démo
TOUT LE CONTENU CI-DESSOUS EST OBSOLÈTE
<Update>
2012-Nov-09
Simplement l'ajout d'un lien vers un meilleur exemple qui traite également de la partie qui l'OP veut mettre une classe dans le courant de la barre de navigation de l'élément lorsqu'une route est sélectionnée
Source dans JSFiddle (Cliquez sur ici de le voir en cours d'exécution)
Si vous regardez dans le NavigationController vous verrez le "selected" de la propriété, dont je me sers pour vérifier dans l'est actif méthode de la vue enfant NavigationItemView. La est actif renvoie true ou false en fonction de la valeur de la
menu
propriété de la même vue (défini dans le modèle) et la valeur de la propriétéselected
(de l'automate). Ensuite, vérifiez le classNameBinding expressions qui définit des "actif" ou rien à la classe de l'enfant.Vérifiez également les ConnectOutlets d'où je suis marquage nav élément sélectionné.
C'est en cours d'exécution sur tison-dernière.
Je suis également en utilisant un peu de De braise.Bootstrap ainsi que certains de l'original Twitter Bootstrap fonctions/classes/etc (mais je l'ai remplacé les styles avec métro-bootstrap).
Pas coller le tout ici en raison de l'espace et de toutes les. Je vais laisser le code d'origine et un lien vers le même pour la référence à l'origine de question/réponse.
Je vais continuer à mettre à jour ce nouvel échantillon simplement parce que la braise est amusant =)
</mise à Jour>
Ce violon montre une statique de la barre de navigation à partir d'une vue, et de la prise de courant est utilisé uniquement pour l'affichage du contenu, ou vous pouvez aller directement à l'affichage de voir fonctionner
Comme vous pouvez le voir, vous pouvez utiliser un simple point de vue contenant vos liens d'action et ont de ce point de vue rendu en vous fenêtre principale de l'application. Le sous-itinéraires en vertu de "départ" ont également un mini barre de navigation, à venir à partir d'un modèle similaire.
Guidon:
JavaScript:
{{action}}
allait se jouer. Avez-vous quelque chose de spécifique que vous voulez demander de plus? Peut-être que vous devriez vous poser une nouvelle question thoinit
fonction). Je suis à la définition d'un NavBarItem modèle avec unroute
bien que je suis le remplissage avec de l'itinéraire (commeroot.index.home
) et j'ai mis en action à feunavigateTo
dans mon routeur, en passant, que bien que l'argument detransitionTo
. Espérons que cette aide.Je n'aimais pas MilkyWayJoe de réponse parce que si vous tôt ou tard souhaitez modifier le nommage de vos membres ou ce que vous avez à passer par le code ET la vue ainsi, en ajoutant également une fonction de transitionTo chaque itinéraire ne semble pas souhaitable.
Mon approche est un peu plus programmatique et modulaire:
nav-vue.hbs (pour twitter bootstrap-style trajets)
De cette façon, je peux juste créer et de déconner avec mes itinéraires dans le Routeur,
et de garder la valeur liquidative-les Définitions de side-by-side:
a href="#"
àhref="/#/{{unbound goto}}"