通过加载控制器保持后退按钮的角度

Preserving back button in angular through a loading controller?

本文关键字:按钮 加载 控制器      更新时间:2023-09-26

根据服务中的逻辑,我路由到不同的视图。为了方便服务注入,我使用了一个加载控制器来决定下一步要去哪里。

这工作得很好,除了我不能"返回"通过加载控制器。我如何检测后退按钮,或修复我的加载模型,使其更友好?

    .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
        }
    }]);

听起来你需要$location.replace():

如果调用,当前$digest期间对$location的所有更改都将替换当前历史记录,而不是添加新记录。

https://docs.angularjs.org/api/ng/service/美元位置