【发布时间】:2017-08-06 18:33:24
【问题描述】:
我有一个相对简单的问题。我设置了一个会话,然后使用存储在会话中的字符串订阅一个集合。但是当该会话发生变化时,我需要清除订阅数据并重新开始。
我的代码如下:
let subscriptionReady;
let filteredResults = [];
let rawResults = [];
let county = Session.get('county');
let type = Session.get('type');
这主要是创建一些空对象以供以后填充的准备工作。这一切都设置在点击事件上。在我们设置这些占位符对象后,我们去订阅这些会话:
if (county && !type) {
return function() {
if (subscriptionReady) {
subscriptionReady.stop();
}
filteredResults = [];
rawResults = [];
subscriptionReady = Meteor.subscribe('resourcesearch', county, {
onReady: () => {
rawResults = resourceCollection.find({}, { sort: {score: -1} }).fetch();
rawResults.forEach((result) => {
if (result.score) {
filteredResults.push(result);
}
});
}
});
}
在第三行,我运行检查subscriptionReady 是否存在,那么它将有stop 方法可用。然后我运行它。但是,它实际上并没有停止任何事情。
我错过了什么?
【问题讨论】:
标签: meteor subscription