我想开始使用 Angular 的 ui-router 而不是 ngRoute。最初,我的应用配置看起来像
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"
})
;
}
]);
我换掉了库,并更改了配置。我知道我仍然可以使用$routeProvider
,但这似乎是一种传统的解决方法。
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"
})
;
}
]);
这给了我似乎表明$digest
陷入循环的错误。我怀疑这个.otherwise("/home")
规则。我handler
是否正确指定了 s,就好像它们是模板 URL 一样?
如果我注释掉.when()
s,除了"/customer/:username"
. 我必须为每条路线定义一个状态吗?如果是这样,同时拥有$urlRouterProvider
and有什么意义$stateProvider
?不同地问,每个人应该做什么?