Angular :界面路由器获得先前状态?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (29)

是否有方法获取当前状态的前一个状态?

例如,我想知道当前状态B之前的前一个状态是什么(以前的状态应该是状态A)。

我无法在UI路由器GitHub文档页面中找到它。

提问于
用户回答回答于

您应该能够从该事件中捕捉到先前的状态:

$rootScope.$on('$stateChangeSuccess', function (ev, to, toParams, from, fromParams) {
   //assign the "from" parameter to something
});
用户回答回答于

在移动到新状态之前,我使用解析来保存当前状态数据:

angular.module('MyModule')
.config(['$stateProvider', function ($stateProvider) {
    $stateProvider
        .state('mystate', {
            templateUrl: 'mytemplate.html',
            controller: ["PreviousState", function (PreviousState) {
                if (PreviousState.Name == "mystate") {
                    // ...
                }
            }],
            resolve: {
                PreviousState: ["$state", function ($state) {
                    var currentStateData = {
                        Name: $state.current.name,
                        Params: $state.params,
                        URL: $state.href($state.current.name, $state.params)
                    };
                    return currentStateData;
                }]
            }
        });
}]);

扫码关注云+社区