Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor 铁路由器:我的订阅没有';我不能在waitOn里面工作_Meteor_Iron Router - Fatal编程技术网

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
的值来检查您实际发送的内容吗?这可能是因为您将它作为字符串而不是整数发送(就像您在控制台中一样)。就是这样!添加答案,以便我可以解决此问题。:)