Dgrid 0.4 和 dstore:更新 UI 中的行而没有放置请求

Dgrid 0.4 and dstore: update row in UI without put request

在 Dgrid 0.3.16 中,我使用了一个 Observable 存储,当存储中的数据发生更改时,我调用了存储通知功能。 (不是 'put' 因为我只需要 UI 更新,这是一个特定的案例)

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 来重新渲染该行。

dstore 遵循的模型更类似于具有 onemit 方法的典型事件驱动方法。 dstore 支持 addupdatedelete 事件 - 前两个需要一个引用该项目的 target 属性 对象; delete 事件需要一个带有 id 属性 的对象来引用项目的标识。

因此,要通知更新的项目,请调用 store.emit('update', { target: updatedItem })

emit 方法记录在 Store methods, and the types of events are further enumerated in the Collection documentation 下。