Meteor Tabular не реагирует на изменение значений ReactiveDict

Я использую отличный пакет Tabular. https://github.com/Meteor-Community-Packages/meteor-tabular.

Я использую клиентскую часть selectorhelper для реактивного изменения моей таблицы, заставив сервер изменить запрос для моего набора данных.

У меня есть несколько HTML inputs, которые действуют как фильтры, и я заполняю ReactiveDict values. Событие нажатия кнопки поиска запускает ReactiveDictчтобы заполнить объект с помощью .set

Инициализация ReactiveDict

      Template.tbl.onCreated(function () {
    const self = this;
    self.filters = new ReactiveDict({});
});

Население ReactiveDict

      'click #search-button'(e, template) {
            //clear to 'reset' fields in ReactiveDict that could've been cleared by User
            template.filters.clear();

            const searchableFields = getSearchableFields();

            //Initialize standard JS Obj that ReactiveDict will then be set to
            const filterObj = {};

            //Loop through search fields on DOM and populate into Obj if they have a val
            for (let field of searchableFields) {
                const value = $(`#${field}-filter`).val();

                if (value) {
                    filterObj[field] = new RegExp(escapeStringRegex(value.trim()), 'i'); 
                }
            }

            if (Object.keys(filterObj).length) {
                template.filters.set(filterObj);
            }
        },

Помощник селектора

      selector: () => {
            const filters = Template.instance().filters.all();
            const selector = { SOME_DEFAULT_OBJ,  ...filters };

            return selector;
        },

Я заметил, что сервер не замечает никаких изменений по сравнению с ReactiveDict, если все ключи остаются прежними. Я тестирую это, войдя на сервер changeSelectormd и убедиться, что моя регистрация не происходит, если изменилось только значение в селекторе.

Есть ли этому решение?

Т.е. {foo:'foo'} to {foo:'bar'}должен реактивно запускать сервер для повторного запроса, но это не так. Но {foo:'foo'} to {bar:'bar'}сработает.

Это проблема с тем, как я использую ReactiveDict, или это на табличной стороне?

Спасибо

0 ответов

Другие вопросы по тегам