Meteor 铁路由器:我的订阅没有';我不能在waitOn里面工作
我有一个简单的订阅运行在铁路由器Meteor 铁路由器:我的订阅没有';我不能在waitOn里面工作,meteor,iron-router,Meteor,Iron Router,我有一个简单的订阅运行在铁路由器 @route 'AdminEditor', path: '/admin/editor/:id?' controller: 'AdminController' template: 'AdminRoot' yieldTemplates: 'AdminEditor': { to: 'adminAside' } waitOn: -> return Meteor.subscribe 'getArticle', @params.i
@route 'AdminEditor',
path: '/admin/editor/:id?'
controller: 'AdminController'
template: 'AdminRoot'
yieldTemplates:
'AdminEditor': { to: 'adminAside' }
waitOn: ->
return Meteor.subscribe 'getArticle', @params.id
出版物:
Meteor.publish 'getArticle', (id) ->
return Articles.find { 'id': id }
我的数据库不是空的,并且只有一个文档:
db.articles.find().pretty()
{
"authors" : [
"dqbxgrxzehXXTbFgG"
],
"date" : ISODate("2014-10-01T20:07:48.846Z"),
"title" : "Meteor #5",
"content" : "hello",
"id" : 1,
"_id" : "WL7ygMw2jL9WnmRYZ"
}
但是当我转到/admin/editor/1
并键入我的chrome调试器Articles.findOne()
时,它不会返回任何内容。我还在lib文件夹中定义了集合:
@Articles = new Meteor.Collection 'articles' # run on both client and server
我知道可能有一点我忘记了,但是订阅似乎起作用了:当我从chrome调试器订阅它并进行查找时,它返回对象
Meteor.subscribe('getArticle', 1);
Articles.findOne();
您能在waitOn中记录@params.id的值以检查您实际发送的内容吗?这可能是因为您将它作为字符串而不是整数发送(就像您在控制台中那样)。如果是这样,您只需要
parseInt
就可以了。您可以在waitOn
中记录@params.id
的值来检查您实际发送的内容吗?这可能是因为您将它作为字符串而不是整数发送(就像您在控制台中一样)。就是这样!添加答案,以便我可以解决此问题。:)