cuốn sách gpt4 ai đã làm

javascript - 无需用户输入的订阅 react 性以及出版物中不断变化的时间范围

In lại Tác giả: Walker 123 更新时间:2023-11-28 05:44:18 26 4
mua khóa gpt4 Nike

我对 meteor 世界有点陌生,并试图掌握它的窍门,但陷入了困境。

我想在没有用户交互的页面上显示调用集合的子集(将其视为火车站的到达或出发板)。

我有一个出版物,其中包含具有时间段的调用子集。

Meteor.publish('currentcalls', function(){
var start = moment().subtract(24, 'hours').toDate();
var end = moment().add(24, 'hours').toDate();
return Calls.find({appointment: {$gte: start, $lt: end}});
});

我进行了模板订阅,并在模板上自动运行。

Template.HomeLayout.onCreated( function() {
this.autorun(() => {
this.subscribe('currentcalls');
});
});

当我在 -24 小时和 + 24 小时的设定时间范围内将调用输入数据库时,该调用将显示在模板上。当我删除一个时,它就会从显示中删除。

但是,当将 future 日期且不在发布中设置的时间范围内的调用添加到数据库时,随着时间的推移,该调用不会自动显示,除非存在触发器导致该调用发生 react 。与用户交互的订阅/发布。

什么是确保最终进入或离开不断变化的时间范围的调用被显示或从显示中删除的好方法?

我尝试重新发布该出版物,但服务器上的控制台日志中出现错误:

I20160730-11:47:03.521(0)? Ignoring duplicate publish named 'currentcalls'

现在我已经快速而肮脏地重新加载了页面。

Meteor.setInterval( function() {
window.location.reload();
}, 60000);

但我确信这不是 meteor 之路!;-)任何意见将不胜感激!

câu trả lời hay nhất

为我自己的问题提供一个可能的解决方案,即我在不断搜索中发现的内容,并帮助将来面临同样问题的人:

我在以下位置找到了解决方案:

https://github.com/peerlibrary/meteor-reactive-publish

它在我的问题设置中就像一个魅力。然而,我仍然很好奇是否有其他解决方案或思维方式来使用 Meteor 中的 react 性来解决我提出的问题。

编辑:这是一些使用该库/包来完成我的答案的代码。

var start = new ReactiveVar(moment().subtract(24, 'hours').toDate());
var end = new ReactiveVar(moment().add(24, 'hours').toDate());

Meteor.setInterval( function() {
start.set(moment().subtract(24, 'hours').toDate());
end.set(moment().add(24, 'hours').toDate());
}, 60000);

Meteor.publish('currentcalls', function() {
this.autorun(function (computation) {
return Calls.find({appointment: {$gte: start.get(), $lt: end.get()}});
});
});

关于javascript - 无需用户输入的订阅 react 性以及出版物中不断变化的时间范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38673819/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress