Meteor Sub / pub с реактивными переменными прерывают толчок DDP? - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь использовать реактивные переменные для фильтрации опубликованных данных, на странице списка данных пользователи могут выбрать 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. спасибо

Робин

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...