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
的键。您可以从那里使用它,它已在选项中命名。请向我们显示您的整个路线代码。