angular-meteor.auth解析为空白页面

时间:2016-04-22 22:07:09

标签: angularjs meteor angular-meteor

我正在尝试在视图之前对用户进行身份验证,在这种情况下dashboard会被呈现。

如果用户已登录,那么您可以继续使用,但如果没有,请重定向到login状态。

这是我的控制者:

import angular from 'angular';
import angularMeteor from 'angular-meteor';
import uiRouter from 'angular-ui-router';
import angularMeteorAuth from 'angular-meteor-auth';
import { Meteor } from 'meteor/meteor';
import { Accounts } from 'meteor/accounts-base';
import { name as navBar } from '../navBar/navBar';

import './dashboard.html';

class dashboardCtrl {
  constructor($scope) {
    'ngInject';

    if (Meteor.user()) {
      console.log('logged in ', Meteor.user());
    } else {
      console.log('not logged in or error');
    }
  }
}

const name = 'dashboard';

export default angular.module(name, [
  angularMeteor,
  uiRouter,
  navBar,
  angularMeteorAuth
])
  .component(name, {
    templateUrl: `imports/ui/components/${name}/${name}.html`,
    controller: dashboardCtrl,
  })
  .config(function($stateProvider, $urlRouterProvider) {
    'ngInject';

    $stateProvider
    .state('dashboard', {
      url: '/dashboard',
      template: '<dashboard></dashboard>',
      resolve: {
        user: function($auth, $state){
          return $auth.requireUser().then(function(){
            return true;
          }, function(err){
            $state.go('login');
          });
        }
      }
    })
  })

如果用户没有登录,这可以正常工作,它会正常重定向到login,但是当用户确实已登录并尝试在dashboard中刷新时,它会返回一个空白屏幕/没有控制台日志或错误或任何内容的页面。

我该如何解决这个问题?

谢谢!

0 个答案:

没有答案