根据服务中的逻辑,我会路由到不同的视图。为了便于服务注入,我使用加载控制器来确定下一步的位置。
这很好用,除了我不能通过加载控制器“返回”。如何检测后退按钮,或者修复我的加载模型对它更友好?
.when('/loading', {
templateUrl: '/app/views/mystuff/loading.html',
controller: 'LoadingController'
})
angular.module('app').controller('LoadingController', ['$location', 'WhereService',
function ($location, WhereService) {
if (!WhereService.doneWithA()) {
$location.path('/a');
}
else if (!WhereService.doneWithB()) {
$location.path('/b');
}
else {
location.href = "/myapp/somewhereelseentirely"//this is fine
}
}]);
angular.module('app').controller('ALoadingController', ['$location', 'AService',
function ($location, AService) {
if (!AService.isDone()) {
$location.path(AService.currentPath());
}
else {
$location.path('/');//triggers loading controller above
}
}]);
答案 0 :(得分:2)
听起来你需要$location.replace()
:
如果被调用,当前$ digest期间对$ location的所有更改都将替换当前历史记录,而不是添加新记录。