1

コンボ ボックス用の一般的な Extjs ストアを作成したいと考えています。

ストアは次のことができる必要があります。

  1. URLを取る
  2. サーバーからプロキシを使用してデータを読み取る
  3. どのモデルでも動作するはずです

どうすればこれを達成できますか?

これは私が最初に持っているものです:

Ext.create('Ext.data.Store', {
    proxy: {
        type: 'ajax',
        url: rawURL,
        reader: {
            type: 'json'
        }
    }
})

使用するExtJS 4.1

4

1 に答える 1

1
function getGenericStore(storeURL, valField, dispField) {
    var modelName = 'Model' + me.id;
    var model = Ext.define(modelName, {
        extend: 'Ext.data.Model',
        fields: [
            {name: valField, type: 'string'},
            {name: dispField, type: 'string'}
        ]
    });    
    return Ext.create('Ext.data.Store', {
        proxy: {
            type: 'ajax',
            model: model,
            url: storeURL,
            reader: {
                type: 'json',
                read: function(response) {
                    var json = Ext.decode(response.responseText);
                    var records = [];
                    Ext.each(json, function(item) {
                        var record = Ext.create(modelName);
                        record.set(val, item[val]);
                        record.set(display, item[display]);
                        records.push(record);
                    });

                    return {
                        success: true,
                        total: json.length,
                        count: records.length,
                        loaded: true,
                        records: records
                    };
                }
            }
        }
    });
}
于 2013-06-24T16:11:57.637 に答える