2016-07-05 42 views
1

我已经创建了SPA angular angular v1.5.6 and angular-ui-router v1.0.0alpha0;这是我的Working Plunker。 这个SPA我有3页:着陆页,即“/”,/首页/关于。主页需要登录;登录后我们将凭据保存在本地存储中,以便刷新页面时不会丢失页面。一切工作正常,但现在我有问题的/主页无法刷新页面上的相同状态

当我刷新/主页页面,它提供了以下错误这是在数据中定义的属性.STATE和属性页不加载

angular.min.js:117 TypeError: Cannot read property 'authorizedRoles' of undefined

路线在下面的方式(下面只示出了相关的代码)

$stateProvider 
     .state("home", { 
      url: '/home', 
      templateUrl: './home/home.html', 
      controller: 'HomeController', 
      requiresAuth: true, 
      data : { pageTitle : 'Home', authorizedRoles: [USER_ROLES.admin, USER_ROLES.editor] } 
     }) 
定义

*.config*这是错误的原因

$transitionsProvider.onBefore({to: function(state) { return state.requiresAuth; } }, 
     function($transition$, $state, AuthService) { 
      console.log(arguments); 
      var from = $transition$.to().name; 
      console.log(from); 
      if(!AuthService.isAuthenticated()) { 
       return $state.go("login", {referral : from}); 
      } else { 
       console.log('I m logged in'); 
       var roles = $state.current.data.authorizedRoles; 
       if(AuthService.isAuthorized(roles)) { 
        console.log('Authorized'); 
       } 
      } 
    }); 

笔记使用下面的代码:要求登录时写在plunker任何凭据。

页面刷新后$ state.current变为空白;如何处理这个situtaions?

回答

0

与此help from github

var roles = $state.current.data.authorizedRoles;

解决将是

var roles = $transition$.to().data.authorizedRoles;

0

您是否试过dev tool

把一个断点放在app.js:76并点击Home,你会看到你的当前状态是没有data属性的基态。

+0

是。我发现这似乎有效,但当我们刷新同一主页时,为什么会发生这种情况 –

相关问题