我的页面有这两种状态:
$stateProvider
.state("page", {
url: "/:pageId/:pageType",
template: pageTemplate,
controller: "contentCtrl",
resolve: {
...
}
},
params: {reload: true}
})
和
.state("schedule", {
url: "/Schedule/:scheduleId/:pageId/:pageType",
template: pageTemplate,
controller: "contentCtrl",
resolve: {
...
}
},
params: {
pageId: { squash: true, value: null},
pageType: { squash: true, value: null},
reload:true
}
})
有时,链接如下:
http://localhost:8182/index.html#/Schedule/691d6981b8dd47e0a158d67cb02b1fee/
正在加载“页面”状态,而不是“计划”状态。
该如何解决?
PS:我正在使用AngularJS v1.7.6和ui-router v0.2.18
答案 0 :(得分:1)
按照定义的顺序匹配路由。但是,精确匹配优先于参数化匹配。
我首先会尝试更改状态的顺序。
然后我会尝试做
$stateProvider.state('foo.bar', {url: '/foo/:bar'});
$stateProvider.state('foo.baz', {url: '/foo/baz'});
$urlRouterProvider.when( '/foo/baz', function($state){ $state.go('foo.baz'); } );
我也看到两个问题: