Ich möchte Angulars UI-Router anstelle von ngRoute verwenden. Ursprünglich sah meine App-Konfiguration wie
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"
})
;
}
]);
Ich tauschte die Bibliotheken und änderte die Konfiguration. Ich verstehe, ich könnte immer noch $routeProvider
verwenden, aber das scheint wie eine Legacy-Problemumgehung.
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"
})
;
}
]);
Das gibt mir Fehler, die zeigen scheinen, ist $digest
stecken in einer Schleife. Ich vermute die .otherwise("/home")
Regel. Richte ich die handler
s korrekt ein, als wären sie Vorlagen-URLs?
Wenn ich die .when()
s auskommentiere, funktioniert nichts außer "/customer/:username"
. Muss ich für jede Route einen Status definiert haben? Wenn ja, worauf kommt es an, $urlRouterProvider
und $stateProvider
zu haben? Anders gefragt, was soll jeder tun? Hier
Kick ngRoute zum Bordstein. Schauen Sie @ die Konfiguration in der Demo-PLNKR-Liste auf UI-Router Github. In Ihren .states ist kein Controller aufgeführt, aber "/ customer /: username" würde einen $ scope in einem Controller aufrufen. – cheekybastard
Ich fand dies: http://plnkr.co/edit/u18KQc?p=preview. Es zeigt eine "Controller" -Eigenschaft, aber die Beispiele sehen alle wie "Schein-Controller" (anonyme Funktionen) aus. Ich habe versucht, den Namen eines meiner Controller zu verwenden, sowohl zitiert als auch nicht, aber das schien nicht zu funktionieren. Darüber hinaus scheint die App immer noch nicht zu routing. – N13
Ich habe irgendwie den sehr klar beschrifteten "Controller" Abschnitt im Wiki vermisst: https://github.com/angular-ui/ui-router/wiki#wiki-controllers. Danke, dass du mich gedemütigt hast. Ich weiß immer noch nicht, was ich mit '$ urlRouterProvider' machen soll, oder ob ich für jede frühere Route einen Status definieren muss (auch in Ihrer Antwort gefragt). – N13