Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何创建通用的ExtJS组合框存储?_Javascript_Extjs_Extjs4_Extjs4.1 - Fatal编程技术网

Javascript 如何创建通用的ExtJS组合框存储?

Javascript 如何创建通用的ExtJS组合框存储?,javascript,extjs,extjs4,extjs4.1,Javascript,Extjs,Extjs4,Extjs4.1,我想为组合框创建一个通用的Extjs存储 商店应能够: 获取一个URL 使用代理从服务器读取数据 应该适用于任何模型 我怎样才能做到这一点 这是我的开始: Ext.create('Ext.data.Store', { proxy: { type: 'ajax', url: rawURL, reader: { type: 'json' } } }) 使用extjs4.1 function ge

我想为组合框创建一个通用的Extjs存储

商店应能够:

  • 获取一个URL
  • 使用代理从服务器读取数据
  • 应该适用于任何模型
  • 我怎样才能做到这一点

    这是我的开始:

    Ext.create('Ext.data.Store', {
        proxy: {
            type: 'ajax',
            url: rawURL,
            reader: {
                type: 'json'
            }
        }
    })
    
    使用
    extjs4.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
                        };
                    }
                }
            }
        });
    }