AngularJS ui路由器在登录后重定向

AngularJS ui路由器在登录后重定向,angularjs,angular-ui-router,rootscope,Angularjs,Angular Ui Router,Rootscope,我有一个使用AngularJS和ui路由器的项目。在第一次加载时,除了从登录屏幕重定向到预览状态之外,一切正常 默认状态为家- 例如,如果用户未登录,则转到登录页面(应该这样做) 用户登录后,系统进入默认状态“home-”,但我想进入 如何保存“或状态名”以在登录后重定向 我尝试使用$statechangesucture在$rootscope中保存状态日志,但第一个()从未保存 你知道怎么处理吗 谢谢。您可以在主应用程序的run方法中向$state添加“previous”属性 我就是这样解决这个

我有一个使用AngularJS和ui路由器的项目。在第一次加载时,除了从登录屏幕重定向到预览状态之外,一切正常

默认状态为家-

例如,如果用户未登录,则转到登录页面(应该这样做)

用户登录后,系统进入默认状态“home-”,但我想进入

如何保存“或状态名”以在登录后重定向

我尝试使用
$statechangesucture
$rootscope
中保存状态日志,但第一个()从未保存

你知道怎么处理吗


谢谢。

您可以在主应用程序的run方法中向$state添加“previous”属性

我就是这样解决这个问题的:

// add ui-router variables to $rootScope. Comes handy in many cases, for example setting page title
angular.module('app').run(['$rootScope', '$state', '$stateParams', addUIRouterVars]);

function addUIRouterVars($rootScope, $state, $stateParams) {
    $rootScope.$state = $state;
    $rootScope.$stateParams = $stateParams;

    // add previous state property
    $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState) {
        $state.previous = fromState;
    });
}

我添加了这个,但它正在保存{url=“^”,abstract=true,name=“”,views=null,transition=null},它没有保存正确的数据,它应该是{url=“,etc…},对吗?它对我有效。它可能看起来像这样:对象{url:“/posts”,模板url:“../AngularApp/post/posts.html”,数据:对象,解析:对象,控制器:“postsCtrl as vm“…}我认为您的值是默认值,如果没有以前的状态(即,您是以该状态启动应用程序的)。如果您想了解更多信息,请尝试以下线程:Hi Joe,仔细查看后。。。每次登录后都有代码重定向到主页。现在可以了。谢谢。这是另一个答案