1

Dgrid 0.3.16 では、Observable ストアを使用していました。ストア内のデータが変更されたときにストア通知機能を呼び出しました。(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」を呼び出さずに1行が変更されたときにストアに通知するにはどうすればよいですか? 行を再レンダリングするには dGrid が必要です。

4

1 に答える 1

5

ondstore は、およびメソッドを使用した典型的なイベント駆動型アプローチに似たモデルに従いますemit。dstore はaddupdateおよびイベントをサポートします。最初の 2 つは、項目を参照するプロパティdeleteを持つオブジェクトを想定しています。targetこのイベントは、アイテムの ID を参照deleteするプロパティを持つオブジェクトを想定しています。id

したがって、更新された項目を通知するには、 を呼び出しますstore.emit('update', { target: updatedItem })

このemitメソッドはストア メソッドで説明されており、イベントの種類はコレクションのドキュメントでさらに列挙されています。

于 2015-03-27T10:29:50.873 に答える