Имам контролер за маршрут за страница, подобна на дадената по-долу, която връща обект. Но не мога да намеря този обект, когато шаблонът се визуализира, но когато отпечатам с помощта на console.log, obecjt се връща правилно към шаблона.
MyPageController = RouteController.extend({
template: 'myPage',
increment: 5,
commentsLimit: function() {
return parseInt(this.params.commentsLimit) || this.increment;
},
findOptions: function() {
return {sort: this.sort, limit: this.commentsLimit()};
},
subscriptions: function() {
this.myObjectSub = Meteor.subscribe('singleObject', this.params._id);
this.commentsSub = Meteor.subscribe('comments', this.params._id, this.findOptions());
},
comments: function() {
return Comments.find({myObjectId: this.params._id}, this.findOptions());
},
myObj: function() {
return MyObects.findOne(this.params._id);
},
data: function() {
var hasMore = this.comments().count() === this.commentsLimit();
return {
myObj: this.myObj(),
comments: this.comments(),
ready: this.myObjectSub.ready,
nextPath: hasMore ? this.nextPath() : null
};
},
sort: {submitted: -1, _id: -1},
nextPath: function() {
return Router.routes.myPage.path({_id:this.params._id, commentsLimit: this.commentsLimit() + this.increment});
}
});
Моят маршрут е дефиниран така:
Router.route('/myobjects/:_id/:commentsLimit?', {
name: 'myPage',
controller: MyPageController
});
Не мога да разбера защо MyObject не се намира от шаблона MyPage, където са налични коментарите. Когато проверявам с помощта на console.log на RouteController, MyObj се връща правилно.
РЕДАКТИРАНЕ: Мога да намеря myObj в конзолата, когато страницата е заредена, така че когато шаблонът се визуализира, myObj все още не е достъпен за шаблона.
Така че, когато върна данни в тази форма, myObj се намира и се зарежда добре.
data: function() {return MyObjects.findOne(this.params._id);}
Но когато искам да върна повече от една променлива, мога да намеря други променливи като comments & nextPath, но не и myObj?? защо е така
return {
myObj: this.myObj(),
comments: this.comments(),
ready: this.myObjectSub.ready,
nextPath: hasMore ? this.nextPath() : null
};