2016-06-30 5 views
0

ユーザーが自分のアカウントにログインすると、ユーザーの役割を確認して適切なホームページに誘導したいと考えています。ロールはmeteor-rolesで設定され、私はflow-routerを使用しています。現在、これは単なるトリガーエラーがスローされます。UserRoleをチェックして一意のホームURLに送信

Exception from Tracker recompute function: 
TypeError: Cannot read property 'roles' of undefined 

は、ルータファイルにrolesにアクセスすることも可能ですか?

パス:Routes.js

FlowRouter.route("/", { 
    name: 'home', 
    action: function() { 
    var user = Meteor.user(); 
    var userRole = user.roles; 

    if (userRole == 'is_student') { 
     FlowRouter.go('profileNew'); 
    } else if (userRole == 'is_teacher') { 
     FlowRouter.go('profile');  
    } else { 
     FlowRouter.go('profileAdmin'); 
    } 
    } 
}); 

答えて

1

VARユーザー= Meteor.user()。 //アプリケーションが起動しているのでログインしていません

var userRole = user.roles; //この時点でユーザーは未定義ですので、どのようにして役割を取得できますか?それはなぜそのエラーを投げる。

だから、このように、このsitulationを管理することができます - 提案のための

FlowRouter.route("/", { 
    name: 'home', 
    action: function() { 
    var user = Meteor.user(); 
    if(user){ 
     var userRole = user.roles; 
     if (userRole == 'is_student') { 
      FlowRouter.go('profileNew'); 
     } else if (userRole == 'is_teacher') { 
      FlowRouter.go('profile');  
     } else { 
      FlowRouter.go('profileAdmin'); 
     } 
    } 
    } 
}); 
+0

感謝。これは、エラーのない空のページにつながります。 – bp123

+0

これはあなたが探しているものだと思う:https://medium.com/@satyavh/using-flow-router-for-authentication-ba7bb2644f42#.pzuepjg83 –

関連する問題