2

店舗コードはこちら

Ext.define('NG.store.WhatsNews', {
    extend: 'NG.store.AbstractStore',
    model: 'NG.model.auxClasses.notifications.WhatsNew',
    alias: 'store.whatsnewstore',
    autoLoad:true,
    buffered: true,
    pageSize: 50,

    proxy: {
        type: 'rest',
        url: 'api/WhatsNew/'
    }
});

モデルは次のとおりです。

Ext.define('NG.model.auxClasses.notifications.WhatsNew', {
    extend: 'Ext.data.Model',
    idProperty:'iD',
    fields: [
        { name: 'iD', type: 'int' },
        { name: 'createDate', type: 'date', dateFormat: 'c' },
        { name: 'businessArchive', type: 'string' },
        { name: 'isPin', type: 'boolean' },
        { name: 'previousWhatsNewEvents' }

    ],

    // self association model
    associations: [{
        type: 'hasMany',
        model: 'auxClasses.notifications.WhatsNew',
        name: 'previousWhatsNewEvents',
        primaryKey: 'id',
        associationKey: 'previousWhatsNewEvents'
    }
});

コントローラーからのコードは次のとおりです。

init: function () {
     var me = this;

     me.control({
         'whatsnewlist': {
             whatsnewpinclick: function (rowIndex) {
                 var me = this,
                     store = me.getWhatsNewsStore(),
                     record = store.getAt(rowIndex);
                     record.set('isPin', !record.get('isPin'));
                     store.sync(); <<< THIS IS WHERE I FAILED
             }
     });
 }...

フレームワークからのエラーは次のとおりです: (store getNewRecords メソッドで失敗します)

ここに画像の説明を入力

Ext.data.PageMap クラスは filterBy メソッドの定義を保持していないようです。

それは既知の問題ですか?

回避策はありますか?

4

1 に答える 1

2

バッファリングされたストアは、作成/編集/削除操作をサポートしていません。ここで、その問題に関する説明を見つけることができます: http://www.sencha.com/forum/showthread.php?251648-Ext-4.2.0-Beta-Object-object-Object-has-no-method-filterBy

回避策として、バッファリングなしで別の「コピー」ストアを作成できます (ただし、必要に応じてページングを使用します)。そのストアで作成/削除/編集操作を実行してから、元のストアをリロードします。私はこれを試していませんが、うまくいくと思います。

または、レコードの更新のみが必要な場合は、モデルの save() 関数を使用できます。私はこれを試してみましたが、うまくいきました。

または、バッファリングされたストアの代わりに、グリッドの「bufferedrenderer」プラグインを使用できます: http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.grid.plugin.BufferedRenderer

于 2013-11-11T18:31:19.253 に答える