AngularJS ui-router les paramètres facultatifs
J'ai essayé de configurer mon routage comme ce
...
url: '/view/:inboxId?'
...
mais Angulaire serait de se débarrasser de cette erreur:
Error: Invalid parameter name '' in pattern '/view/:inboxId?'
donc en gros j'ai eu pour la création de deux états différents:
state('view', {
url: '/view/:inboxId',
templateUrl: 'templates/view.html',
controller: 'viewCtrl'
}).
state('view_root', {
url: '/view',
templateUrl: 'templates/view.html',
controller: 'viewCtrl'
})
Est-il possible de combiner ces états en un seul?
OriginalL'auteur mikek | 2014-08-24
Vous devez vous connecter pour publier un commentaire.
D'avoir une option param - déclarer comme vous l'avez fait, mais ne pas la passer. Voici un exemple. Que tous puissent travailler avec un état (pas de racine) ou deux (racine et de détail) que vous le souhaitez.
La définition mentionnée dans la question, est prête à gérer ces appels:
Nous n'avons pas à utiliser
?
pour marquer paramètre facultatif. Juste deux url doit être unique (par exemple,/view/:id
vs/view
- où le second n'a pas de fuite/
)Je suis en désaccord avec votre déclaration - "Que tous puissent travailler avec un état (pas de racine)." Avec un seul état, celui avec le paramètre déclaré dans l'url, le "#/view" url ne correspondent pas. Il faudrait une barre oblique de fermeture - "#/view/". J'aimerais pour l'interface utilisateur du routeur afin de soutenir véritablement en option paramètres avec un seul état, mais il ne le fait pas. Même la nouvelle "option" paramètres de l'endroit où vous spécifiez les valeurs par défaut dans les paramètres de l'objet exiger la fermeture de slash devant eux.
OriginalL'auteur Radim Köhler
Le code ci-dessous permet de vraiment paramètres facultatifs, si vous n'avez pas l'esprit, avoir un couple extra-unis.
J'ai transformé mon état d'origine dans une abstraction l'une par l'ajout du résumé de l'attribut, et a ensuite créé deux enfants etats, l'un avec une url qui a params, l'un avec une url vide qui fait référence à la société mère.
Il fonctionne bien sur mon site dev, et ne nécessite pas un slash de fin, en fait, si vous voulez que le slash de fin, vous devrez ajouter un état/quand pour elle.
OriginalL'auteur SethWhite