Я создаю приложение в Метеор. Я пытаюсь передать объект пользователя в шаблон, но консоль поддерживает печать из «пользователя не определены», хотя я четко определить объект пользователя в моем контроллере:Объект undefined в Meteor/JavaScript
controller.js:
checkoutController = RouteController.extend({
waitOn: function() {
var sessionId = Session.get('sessionId');
Meteor.subscribe('cartItems', sessionId);
Meteor.subscribe('userProfileExtended2');
},
data: function(){
return {
user: Meteor.users.findOne(this.params._id) //user defined
};
},
action: function() {
this.render('Checkout');
console.log('user:')
console.log('user: ' + user);
}
});
Моих публикующего .js, который публикует объект пользователя:
//this is for a user to edit his/her own profile since there's no admin check
Meteor.publish('userProfileExtended2', function(userId) {
if(!this.userId) return null;
var currUser = Meteor.users.find(this.userId);
//need to add logic to make sure user can only edit his/her account
console.log('user searched for from userprofileextended2 is ' + this.userId);
return Meteor.users.find(this.userId);
});
Вот мой маршрут:
Router.route('/checkout', {name: 'Checkout', controller: 'checkoutController'});
Примечания:
1) Мои консольный терминал распечатывает пользователя Id правильно 2) Мой браузер консоль печатает «ReferenceError: пользователь не определен»
Любые мысли? Заранее спасибо!
изменить данные из контекста объекта в эту функцию: data (function = function) (user = Meteor.users.findOne (this.params._id)} ' – Ethaan
Спасибо - я все еще сталкиваюсь с этой проблемой:/ –
hi - console.log ('user:' + user); уже после этого.render ('Checkout'); –