Backbone.js itinéraire paramètre facultatif
Est-il possible d'avoir en option des paramètres dans une Backbone.js itinéraire?
e.g:
routes:
"search/[:query]": "searchIndex"
au lieu de:
routes:
"search/": "searchIndex"
"search/:query": "searchIndex"
- Gabe H est la réponse devrait être la accepté de répondre, plutôt que @mu est trop court.
- Oui! Techmology avancé!
- Routes, comme "search/:la requête" ne fonctionne pas pour moi. Toutefois, la "recherche" fonctionne bien. Une idée?
Vous devez vous connecter pour publier un commentaire.
Comme l'épine Dorsale de 0.9.9, vous pouvez ajouter des paramètres entre parenthèses.
Par exemple dans vos itinéraires objet, vous pouvez définir une option de route de la partie comme ceci:
Maintenant le chemin de l'url va correspondre à
/#organize
et routes comme/#organize/create
.Gardez à l'esprit que si vous avez besoin de routes, comme
/#organize/
(avec une barre oblique) pour être reconnu, vous pouvez le faire:displayOrganize: function(action){ if(action){ // do stuff... }}
?Probablement le plus simple est juste de déclarer plus d'une voie, l'une avec les extra-arg,un sans:
alors il suffit de cocher dans votre méthode:
Noter que j'aime beaucoup mieux que les deux autres réponses, car il est très facile pour un développeur de comprendre ce qu'il se passe.
Vous pouvez ajouter des regex en fonction des itinéraires manuellement à l'aide de le
route
méthode:Donc quelque chose comme cela devrait fonctionner:
Puis
searchIndex
appelait avec votre de rien ou de votre:query
comme argument.L'inconvénient est que vous ne pouvez pas mettre regex voies d'acheminement de votre
routes
objet. Vous pouvez ajouter tous vos itinéraires avecroute
à l'intérieur de votre routeurinitialize
méthode si vous voulais les garder tous ensemble.Que sur l'utilisation de l'
*splat
: