Javascript 在Meteor.subscribe中传递参数

Javascript 在Meteor.subscribe中传递参数,javascript,meteor,iron-router,Javascript,Meteor,Iron Router,订阅已发布集合时,何时可以传递参数 我将以如下方式发布我的收藏: Meteor.publish('recent-posts', function (options) { var limit = options.limit; return Posts.find({}, {sort: {date: -1}, limit: limit}); }); 在我的routes文件中,我可以像这样通过{limit:5}作为选项,并且它可以工作: ... waitOn: function () {

订阅已发布集合时,何时可以传递参数

我将以如下方式发布我的收藏:

Meteor.publish('recent-posts', function (options) {
  var limit = options.limit;
  return Posts.find({}, {sort: {date: -1}, limit: limit});
});
在我的routes文件中,我可以像这样通过
{limit:5}
作为
选项,并且它可以工作:

...
waitOn: function () {
  return Meteor.subscribe('recent-flights', {limit: 5});
}
...
让我困惑的是,这也适用于:

...
waitOn: function () {
  return Meteor.subscribe('recent-posts', {date: this.params.date});
}
...
第二个示例订阅了所有具有特定日期值的帖子


它为什么有效?似乎我正在将
{date:this.params.date}
作为
选项传递。但是我没有在我的《流星》中定义任何有关日期的内容。发布《流星》中没有任何内容会导致这种行为,至少从源代码来看是这样的。我还在一个“干净的”流星实例中测试了您的示例。它的行为不像你描述的那样。所以你的代码中一定有这样的东西。也可能是你没有正确地描述你的问题


我还注意到,在您的示例中,您使用了两种不同的订阅<代码>最近的帖子
最近的航班
。因此,这可能是您困惑的根源。

您是否也尝试直接使用
limit
?它也应该起作用。我认为您不需要在发布函数中将任何内容定义为
date
:您可以在
选项
数组参数中传递它,其中包含一个标记为
date
的键。您可以从那里使用它,它已在
选项中命名。请向我们显示您的整个路线代码。