Dgrid 0.4 и dstore: обновить строку в интерфейсе без запроса на ввод

В Dgrid 0.3.16 я использовал хранилище Observable, и когда мои данные в хранилище были изменены, я вызвал функцию уведомления магазина. (не "ставить", потому что мне нужно только обновление пользовательского интерфейса, это особый случай)

store.notify(object, existingId);

Сейчас я обновил Dgrid до версии 0.4 и в качестве хранилища я использую "dstore". Магазин создан так:

        var store = new declare([ Rest, SimpleQuery, Trackable, Cache, TreeStore ])(lang.mixin({
            target:"/ac/api?fetchview",
            idProperty:"$uniqueid", 
            useRangeHeaders: true
        }, config));

        store.getRootCollection = function (parent, options) {
            return this.root.filter({parent: parent.$position},options);
        };

        store.getChildren = function (parent, options) {
            return this.root.filter({parent: parent.$position},options);
        };

        store.mayHaveChildren = function (item) {
            return item.$iscategory;
        };

        this.collection = store;

Как я могу уведомить магазин, когда одна строка изменяется без вызова "put"? Мне нужен dGrid для повторного рендеринга строки.

1 ответ

Решение

dstore следует модели, более похожей на типичные подходы, основанные на событиях, с on а также emit методы. dstore поддерживает add, update а также delete события - первые два ожидают объект с target свойство, ссылающееся на элемент; delete событие ожидает объект с id свойство, ссылающееся на личность предмета.

Таким образом, чтобы уведомить об обновленном элементе, позвоните store.emit('update', { target: updatedItem }),

emit Метод описан в разделе Методы хранилища, а типы событий далее перечислены в документации Коллекции.

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