METEORJSアプリケーションのクライアント側には、いくつかのユーザーを表示するコントローラがあります。Meteor.user()はクライアント側コントローラでは定義されていません
Meteor.user()関数に問題があります。Meteor.user(...)は未定義です。
this.AdminUsersController = RouteController.extend({
template: "Admin",
yieldTemplates: {
'AdminUsers': { to: 'AdminSubcontent'}
},
onBeforeAction: function() {
var permissions = Meteor.user().profile.permissions;
if (permissions && permissions.indexOf('Users') != -1)
this.next();
else this.redirect('/admin/dashboard');
},
action: function() {
if(this.isReady()) { this.render(); } else { this.render("Admin"); this.render("loading", { to: "AdminSubcontent" });}
/*ACTION_FUNCTION*/
},
isReady: function() {
var subs = [
Meteor.subscribe("users")
];
var ready = true;
_.each(subs, function(sub) {
if(!sub.ready())
ready = false;
});
return ready;
},
data: function() {
var data = {
params: this.params || {},
users: Users.find({labo_id: Meteor.user().profile.labo_id}, {sort: {createdAt:-1}})
};
return data;
},
onAfterAction: function() {
}});
これは、データ機能である:
は、ここに私のコードです。 ログインしているユーザーに接続されているすべてのユーザーを取得しようとしましたが、同じlabo_idフィールドを持っています...
onBeforeAction関数でMeteorにアクセスできる理由はわかりません.user()、特に彼のプロフィール...
私はそれを実行させるために何ができるのですか?
今後のお返事ありがとうございます:)
私は、論理的な答えは、data()関数が呼び出されたときにユーザーがログインしていないと仮定します。 – mwarren
ユーザーはログインしています.adminusercontrollerはアプリケーションのプライベートな部分をレンダリングして管理します。そのため、ユーザーはアクセスするためにログに記録する必要があります。 –