我有一个使用Flow Router及其pub / sub机制的应用程序。我还有一个集合和模板助手。代码是在客户端
Template.theCase.helpers({
theCase: function () {
var id = FlowRouter.getParam('id');
var theCase = Cases.findOne({
id: id
});
return theCase;
}
});
和
{{#with theCase}}
{{ id }}
{{/with}}
然后,在服务器上
Meteor.publish('theCase', function (id) {
return Cases.findOne({
id: id
});
});
最后,两个(lib
)
FlowRouter.route('/case/:id', {
subscriptions: function (params) {
this.register('theCase', Meteor.subscribe('theCase', params.id));
},
action: function (params, queryParams) {
return BlazeLayout.render('container');
}
});
正如我所看到的,问题是助手返回undefined
,因为不允许_id
以外的任何其他属性查找集合中的项目。我怎么能克服它?我已经阅读了关于pub / sub,helpers和routing的官方文档的载货量,我找不到解决方案。有什么建议吗?
答案 0 :(得分:1)
您可以按任何字段查询。帮助器返回undefined,因为它没有找到任何匹配的东西。
此代码存在问题:
Meteor.publish('theCase', function (id) {
return Cases.findOne({
id: id
});
});
应该是:return Cases.find({id: id});
出版物必须返回光标或致电this.ready()