Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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 发布/订阅不工作-如何调试?_Meteor_Iron Router_Publish Subscribe - Fatal编程技术网

Meteor 发布/订阅不工作-如何调试?

Meteor 发布/订阅不工作-如何调试?,meteor,iron-router,publish-subscribe,Meteor,Iron Router,Publish Subscribe,我正在尝试将我的应用程序从自动发布切换到发布/订阅。在尝试设置“发布/订阅”或“我的第一个收藏”后,收藏中的任何项目都不再显示,我对可能出现的错误感到茫然 有人能在我下面的代码中发现一个错误,或者给出一些关于如何调试这类问题的提示吗 客户端/routes.js Router.route('/slug', { name: 'route.name', title: 'My Page', template: 'TemplateName', subscriptions: function

我正在尝试将我的应用程序从自动发布切换到发布/订阅。在尝试设置“发布/订阅”或“我的第一个收藏”后,收藏中的任何项目都不再显示,我对可能出现的错误感到茫然

有人能在我下面的代码中发现一个错误,或者给出一些关于如何调试这类问题的提示吗

客户端/routes.js

Router.route('/slug', {
  name: 'route.name',
  title: 'My Page',
  template: 'TemplateName',
  subscriptions: function() {
    this.subscribe('myPublication');
  },
  action: function() {
    this.render();
  }
});
...
Meteor.publish('myPublication', function() {
  return MyCollection.find();
});
server/lib/collectionLib.js

Router.route('/slug', {
  name: 'route.name',
  title: 'My Page',
  template: 'TemplateName',
  subscriptions: function() {
    this.subscribe('myPublication');
  },
  action: function() {
    this.render();
  }
});
...
Meteor.publish('myPublication', function() {
  return MyCollection.find();
});
client/myCollection/view/myCollection list.html

...
{{#each myCollection}}
    ...
{{/each}}
...

哦,我现在明白了,除非您正在模板帮助器中执行
MyCollection.find()
,否则您需要在路径中执行此操作:

data: function () {
  return MyCollection.find({}).fetch();
}

我错过了该收藏与模板的接触。请参阅此处提供的答案:

不幸的是,这并不能解决我的问题。在编写代码时,我遵循了Iron Router的文档,其中没有使用返回:@codejak-实际上这应该可以解决您的问题,您需要一个模板助手或IR的数据方法来访问模板中的数据。