如何在 Meteor js 的路由操作中使用 Collection.find()
how to use Collection.find() inside route action of Meteor js
我有一段代码;
Router.configure({
layoutTemplate: 'master_layout'
});
Router.map(function(){
this.route('generatePDF', {
path: '/pdf',
where: 'server',
action: function() {
console.log(voters.findOne().fetch());
var voters = voters.find();
....
}
});
如何在路由的 action 中使用任何给定的集合。
我得到如下错误;
W20160510-20:19:29.909(5.5)? (STDERR) TypeError: Cannot call method 'findOne' of undefined
W20160510-20:19:29.910(5.5)? (STDERR) at [object Object].action (lib/routes.js:40:29)
W20160510-20:19:29.910(5.5)? (STDERR) at boundNext (packages/iron_middleware-stack/lib/middleware_stack.js:251:1)
您的代码中有多个错误。
首先,voters
是 console.log
行中的 undefined
(如您的错误日志所述)。
其次,Voters.findOne()
returns 单个文档(假设您有一个名为 Voters
的集合)。您不能在文档上调用 fetch
。
您可以在光标上调用 fetch
。例如,Voters.find().fetch()
就可以了。
希望对您有所帮助
试试这个:
action: function () {
this.render('someTemplate',{
data: function(){
return Voters.find()
}
});
}
我有一段代码;
Router.configure({
layoutTemplate: 'master_layout'
});
Router.map(function(){
this.route('generatePDF', {
path: '/pdf',
where: 'server',
action: function() {
console.log(voters.findOne().fetch());
var voters = voters.find();
....
}
});
如何在路由的 action 中使用任何给定的集合。
我得到如下错误;
W20160510-20:19:29.909(5.5)? (STDERR) TypeError: Cannot call method 'findOne' of undefined
W20160510-20:19:29.910(5.5)? (STDERR) at [object Object].action (lib/routes.js:40:29)
W20160510-20:19:29.910(5.5)? (STDERR) at boundNext (packages/iron_middleware-stack/lib/middleware_stack.js:251:1)
您的代码中有多个错误。
首先,voters
是 console.log
行中的 undefined
(如您的错误日志所述)。
其次,Voters.findOne()
returns 单个文档(假设您有一个名为 Voters
的集合)。您不能在文档上调用 fetch
。
您可以在光标上调用 fetch
。例如,Voters.find().fetch()
就可以了。
希望对您有所帮助
试试这个:
action: function () {
this.render('someTemplate',{
data: function(){
return Voters.find()
}
});
}