小编Nic*_*oan的帖子

在Angular ui-router中使用带有$ stateChangeStart toState和fromState的$ state方法

我正在写一个处理程序$stateChangeStart:

var stateChangeStartHandler = function(e, toState, toParams, fromState, fromParams) {
    if (toState.includes('internal') && !$cookies.MySession) {
        e.preventDefault();
        // Some login stuff.
    }
};

$rootScope.$on('$stateChangeStart', stateChangeStartHandler);
Run Code Online (Sandbox Code Playgroud)

toState没有包含方法.我应该做些不同的事情,还是有办法做我想做的事情?

此外,当//某些登录内容包含a时$state.go(...),我会得到一个无限循环.可能导致什么?


这是一个更完整的例子,展示了我们最终的工作:

angular.module('test', ['ui.router', 'ngCookies'])
.config(['$stateProvider', '$cookiesProvider', function($stateProvider, $cookiesProvider) {

    $stateProvider
    .state('public', {
        abstract: true
    })
    .state('public.login', {
        url: '/login'
    })
    .state('tool', {
        abstract: true
    })
    .state('tool.suggestions', {
        url: '/suggestions'
    });

}])
.run(['$state', '$cookies', '$rootScope', function($state, $cookies, $rootScope) {
    $rootScope.$on('$stateChangeStart', function(e, toState, toParams, fromState, fromParams) {

        if (toState.name.indexOf('tool') > -1 …
Run Code Online (Sandbox Code Playgroud)

angularjs angular-ui-router

35
推荐指数
1
解决办法
10万
查看次数

标签 统计

angular-ui-router ×1

angularjs ×1