Я пытаюсь использовать реактивные переменные для фильтрации опубликованных данных, на странице списка данных пользователи могут выбрать 2 даты, чтобы показать данные, созданные за эти даты;все прекрасно работает, пока у меня не будет нескольких компьютеров для доступа к этой странице одновременно;изменения данных не будут автоматически распространяться на все компьютеры - новые данные отображаются только на компьютере, который вносит изменения. другие компьютеры должны обновить страницу вручную, чтобы увидеть новые или обновленные данные.
если я удаляю реактивные переменные в подпапке / пабе, все в порядке - если один компьютер изменяет данные, все компьютеры получаютновые данные немедленно и автоматически. я даже поместил фильтр даты в помощник - все тот же - без DDP push, так же, как в sub / pub. есть идеи? Любые входные данные очень ценятся. V
sub
Template.TestRV.onCreated(function () {
this.startDate = new ReactiveVar({});
this.endDate =new ReactiveVar({});
var sDate = new Date(new Date().setDate(new Date().getDate() - 30));
var eDate = new Date();
//show last 30 days data by default
this.startDate.set(sDate);
this.endDate.set(eDate);
this.autorun(() => {
this.subscribe('shipAllRV',this.startDate.get(),this.endDate.get());
});
//this.autorun(() => {
//this.subscribe('shipAll');
//});
});
Template.TestRV.helpers({
testListRV: function () {
let start = Template.instance().startDate.get();
let end = Template.instance().endDate.get();
return SHIP.find(
{createdAt: { $lte: end, $gte: start }},
{ sort: { createdAt: -1 } }
);
},
testList: function(){
return SHIP.find({},{ sort: { createdAt:-1} });
}
});
pub -SHIP - моя коллекция
Meteor.publish('shipAll', function() {
return SHIP.find({});
});
Meteor.publish('shipAllRV', function(startDate,endDate) {
return SHIP.find({createdAt:{$lte:endDate,$gte:startDate}},{ sort: { createdAt: -1 } });
});
Кстати, 1. я пробовал переменную сессии то же самое;2. если я не обновляю поле createAt в моем методе SHIP.update, кажется, все хорошо, даже реактивные переменные в sub / pub
, как я могу сделать это правильно? Мне нужен фильтр даты и DDP push. спасибо
Робин