0
Я пытаюсь установить мой selectedDocId
при прокладке на страницу, но Meteor бросает undefined
. Я использую onBeforeAction
в попытке сохранить id
, который объединен в конце моего URL-адреса через /:id
, но я не могу их выровнять.this._id undefined in Meteor
Router.route('speaker', {
path:'/speakers/:_id',
template: 'speaker',
data: function(){
return Speakers.findOne(this.params._id);
},
onBeforeAction: function(){
console.log('speaker route has run');
Session.set('selectedDocId', this._id);
//returns undefined
console.log(this._id);
this.next();
}
});
Template.speaker.helpers({
editingDoc: function(){
return Speakers.findOne({_id: Session.get('selectedDocId')});
}
});
спасибо - в чем же разница? does 'this.params._id' означает, что он анализирует ответ, где, поскольку' this._id' просто ссылается на объект вида? – redress
Контекст ('this') - текущий маршрут. Когда маршрут проходит, он анализирует свои параметры, сохраняя их в 'this.params'. 'this._id' будет доступен в шаблоне (не на маршруте), потому что его контекст является документом. –