在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函數中,我可以訪問流星.user(),特別是他的個人資料...
有人知道我能做些什麼來使其運行?
感謝您的未來答案:)
我想合乎邏輯的答案是,當data()函數被調用時,沒有用戶登錄。 – mwarren
用戶已登錄,adminusercontroller呈現並管理應用程序的私有部分,因此用戶必須登錄才能訪問它。 –