我有一个具有 2 个状态的应用程序设置,A 和 AB 以这种方式完成:
$stateProvider.state('A', {
url: "/A/{aId}",
controller: 'AController',
templateUrl: function($stateParams) {
return "/A/" + $stateParams.aId + "/layout";
}
}).state('A.B', {
url: "/B/{bId}",
controller: 'BController',
templateUrl: function($stateParams) {
return "/A/" + $stateParams.aId + "/B/" + $stateParams.bId+ "/layout";
}
});
当我处于状态 AB (网址类似于 #/A/12/B/123 )并使用浏览器的后退按钮返回或 transitionTo 网址更改时,状态 AB 被清除但状态 A 不会渲染回来。据我所知,控制器没有被触发。
因此,如果我在 A/12/B/123 并返回 A/12 什么都不会发生,但是如果我返回 A/13(使用 transitionTo )它会呈现。
在 angular-ui-router 项目的示例应用程序中,此场景运行良好,因此我认为我的设置可能有问题。我认为值得一提的是,在 index.html 上,我有一个加载状态 A 的 ui-view,而状态 A 的模板有另一个加载状态 AB 的 ui-view
如果有人可以提供帮助,我将不胜感激