Auf der Client-Seite einer METEORJS-Anwendung habe ich einen Controller, der einige Benutzer anzeigt.Meteor.user() ist im clientseitigen Controller nicht definiert
Ich habe ein Problem mit Meteor.user() -Funktion, der Fehler ist: Meteor.user (...) ist nicht definiert.
Hier ist mein Code:
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() {
}});
Es ist in der Datenfunktion. Ich versuche, alle Benutzer, die mit dem angemeldeten Benutzer verbunden sind und das gleiche labo_id-Feld abgerufen haben ...
Ich weiß nicht, warum es mir das geben, weil in der onBeforeAction-Funktion kann ich auf Meteor zugreifen .user(), und speziell sein Profil ...
Jemand weiß, was kann ich tun, um es laufen zu lassen?
Vielen Dank für Ihre Zukunft Antworten :)
Ich nehme an, die logische Antwort ist, dass kein Benutzer angemeldet ist, wenn die Funktion data() aufgerufen wird. – mwarren
Der Benutzer ist angemeldet, der adminusercontroller rendert und verwaltet einen privaten Teil der Anwendung, so dass der Benutzer für den Zugriff angemeldet werden muss. –