Migration de ngRoute / $ routeProvider vers ui-router / $ urlRouterProvider
Je veux commencer à utiliser Angulaire de l'interface utilisateur du routeur au lieu de ngRoute. À l'origine, mon application config ressemblait
myApp.config(["$routeProvider",
function($routeProvider) {
$routeProvider
.when("/search", {
templateUrl: "partials/customerSearch.html"
})
.when("/home", {
templateUrl: "partials/home.html"
})
.when("/login", {
templateUrl: "partials/login.html",
controller: "LoginCtrl"
})
.otherwise({
redirectTo: "/home"
})
;
}
]);
J'ai échangé les bibliothèques, et changé la configuration. Je comprends que je pourrait toujours utiliser $routeProvider
mais qui semble comme un héritage solution de contournement.
myApp.config(["$urlRouterProvider", "$stateProvider",
function($urlRouterProvider, $stateProvider) {
$urlRouterProvider
.when("/search", "partials/customerSearch.html")
.when("/home", "partials/home.html")
.when("/login", "partials/login.html")
.otherwise("/home")
;
$stateProvider
.state({
name: "customer",
url: "/customer/:username",
templateUrl: "partials/customer.html"
})
.state({
parent: "customer",
name: "details",
url: "/details",
templateUrl: "partials/customerDetails.html"
})
;
}
]);
Cela me donne des erreurs qui semblent indiquer $digest
est coincé dans une boucle. Je soupçonne que le .otherwise("/home")
règle. Suis-je en précisant le handler
s correctement, comme si elles étaient modèle d'Url?
Si je commentaire-le .when()
s, rien ne fonctionne sauf "/customer/:username"
. Dois-je avoir un état défini pour chaque itinéraire? Si oui, quel est l'intérêt d'avoir les deux $urlRouterProvider
et $stateProvider
? Posée différemment, qu'est-ce que chaque censé faire?
source d'informationauteur N13
Vous devez vous connecter pour publier un commentaire.
Voici un exemple de base, j'ai fait un tout à l'heure, avec le nom de l'interligne, les contrôleurs de l'interface utilisateur du routeur config, & un imbriquée route (2ème onglet): http://plnkr.co/edit/2DuSin?p=preview
template:
peut être modifié àtemplateUrl:
au point au fichier HTML.
contrôleurs:
Cela devrait fonctionner pour vous. Dans le cas contraire, la fonction fait partie de l' $urlRouteProvider service. Si vous avez des questions, s'il vous plaît consulter les tutoriels sur la façon de définir l'objet qui est utilisé comme paramètre pour l' $stateProvider.de l'état (). Ici, j'ai juste concentré sur l'endroit où placer l'autre route.
]);