AngularJS ui路由器状态不为';背上不刷新
我有一个应用程序设置,有两种状态,A和A。B是这样完成的:AngularJS ui路由器状态不为';背上不刷新,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我有一个应用程序设置,有两种状态,A和A。B是这样完成的: $stateProvider.state('A', { url: "/A/{aId}", controller: 'AController', templateUrl: function($stateParams) { return "/A/" + $stateParams.aId + "/layout"; } }).state('A.B',
$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";
}
});
当我处于A.B状态(url类似于#/A/12/B/123)并使用浏览器的“后退”按钮返回或转换到url更改时,状态A.B被清除,但状态A不会返回。据我所知,控制器没有被触发
所以,如果我在A/12/B/123中,返回到A/12,什么都不会发生,但是如果我返回到A/13(使用Transitiono),它会呈现
在angular ui router项目的示例应用程序中,此场景运行良好,因此我认为我的设置可能有问题。我认为值得一提的是,在index.html上,我有一个加载状态a的ui视图,而状态a的模板有另一个加载状态a.B的ui视图
如果有人能帮忙,我将不胜感激您是否尝试过使用此功能: $state.reload() 这是一种强制重新加载当前状态的方法。所有解析都将重新解析,事件不会重新激发,控制器将重新实例化 这只是以下各项的别名:
$state.transitionTo($state.current, $stateParams, {
reload: true, inherit: false, notify: false
});
我相信在这方面还有一个悬而未决的问题:是的,我看到了这个问题,但我描述的行为在他们的示例应用程序中运行良好。你能发布一个演示这个问题的Plunkr吗?这是非常标准的行为,通常在所有情况下都可以正常工作。我发现了问题…在状态A的布局上有状态A的内容和状态A.B的ui视图。当转到A.B时,来自A的内容被隐藏。返回时,ui视图被清除,但内容仍然隐藏。谢谢你的邀请help@Grig如果你能自己添加一个答案,这将对其他人有所帮助。