Compte de la casse avec angularjs ui-router
Je suis en train de construire une nouvelle application angularJS, sur la base de la AngularJS SPA modèle Visual studio (http://visualstudiogallery.msdn.microsoft.com/5af151b2-9ed2-4809-bfe8-27566bfe7d83)
il utilise l'interface utilisateur du routeur (https://github.com/angular-ui/ui-router) pour son acheminement.
cependant, il semble être sensible à la casse.
Aucune idée de comment je instruirait angulaire/ui-router pour ignorer la casse de la url
paramètre?
de la casse n'a pas d'importance alors que dans l'application; cependant, si un utilisateur de saisir une url pour accéder à l'application à une page spécifique, nous devons nous assurer que about
est également le même que aBouT
Acclamations
- Check this out: github.com/angular-ui/ui-router/wiki/...
- Pensez vous pouviez poster cela comme une réponse Sergiu
- Je pense que la réponse qui décrit le mieux la solution: stackoverflow.com/questions/14994324/... Ce n'est pas clair en double si.
- merci beaucoup les gars. nouveau angulaire donc clairement manqué ces 🙂
Vous devez vous connecter pour publier un commentaire.
Vous pouvez maintenant configurer l'interface utilisateur du routeur à être sensible à la casse directement. Voici comment vous pouvez l'utiliser:
Dans la dernière version (0.2.11), c'est cassé. Un correctif a été poussé déjà qui peut être vu à Github. Alors, actuellement, la meilleure solution est de les cloner ui-router et de construire la tête de maître manuellement. Alternativement, vous pouvez simplement modifier la source manuellement jusqu'à ce que la prochaine version arrive.
Mise à JOUR (11/18/2014):
Une publication a été faite qui intègre le correctif à partir de ci-dessus de sorte que vous n'avez plus à tirer de la source et de construire manuellement. Vous pouvez afficher les libération sur Github ou tout simplement obtenir le la dernière version de.
Suivant le lien dans les commentaires à la question initiale, j'ai été en mesure d'obtenir la réponse dont j'avais besoin.
Avant mon
$stateProvider.state(......)
routes j'ai maintenant ce morceau de code:Essentiellement, il sera
toLowerCase()
une url qui n'est pas en minuscules déjà.Une fois fait, il remplace l'url plutôt que de redirections. Continue ensuite avec une correspondance de l'état.
Vous ne devriez pas changer la façon dont l'interface utilisateur de l'itinéraire poignées URL correspondant à accepter la casse de l'Url (qui ont des problèmes inattendus), mais vous pouvez tenter de corriger les Url pour l'utilisateur automatiquement lorsque la routes échouer.
Lorsque l'interface utilisateur de l'itinéraire peut ne pas correspondre une URL à un itinéraire il déclenche la
otherWise()
de rappel. Je vais vous montrer que vous devez rediriger à l'aide de cette fonction de rappel.La suite fait l'hypothèse que toutes les Url de votre application doit être en minuscules.
Si vous avez besoin de plus de contrôle, puis utiliser une regex pour sélectionner les URLs besoin de réécriture.
$urlRouterProvider.rule()
- autre que la règle s'applique toutes les modifications avant de tenter de trouver une route. Où que votre solution est d'abord de vérifier tous connu des routes, la modification de l'url, puis rediriger.$window
vswindow
à tout garder "au sein des" angualr.rule()
Selon wiki officiel,
https://github.com/angular-ui/ui-router/wiki/URL-Routing
Darren réponse ressemble à droite: