用$ state.go()更改页面

时间:2015-07-27 15:18:18

标签: angularjs routing authorization angular-ui-router state

这可能是一个新手的错误,但我无法使用以下方式更改页面:

$state.go('login');

我的路由如下:

$stateProvider
   .state('login', {
       url: "/login",
       templateUrl: "./auth/login.html",
       controller: 'loginCtrl'
   })

我还添加了一个

$rootScope.$on("$stateChangeStart", function (event, next) {...}

在我使用 $ state.go()之后检查它是否到达那里,是的;它到达那里但它根本不会改变我的页面或URL。更改页面可以在view.html内使用ui-sref="login"

我试过的其他语法:

$state.go('login', null, {options: { location : true }  } );
$state.go('login', {}, {location : true});

顺便说一句,我想要完成的是当用户未在 $ stageChangeStart-event 内获得授权时重定向到登录页面。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

访问Angular ui router - Redirection doesn't work at all。它让我更清楚地知道我做错了什么。

我的实际解决方案可在以下页面找到 frankwallis

https://github.com/angular-ui/ui-router/issues/600

我用

替换了我的默认$urlRouterProvider.otherwise('/yourpage');
$urlRouterProvider.otherwise( function($injector, $location) {
     var $state = $injector.get("$state");
     $state.go("app.home");
});

太糟糕了,我不太了解解决方案但至少它现在有用了!