通用组件

时间:2013-06-10 09:25:44

标签: extjs4 extjs4.2

我需要在Extjs4中定义一组通用组件: 例如,我想定义一个通用商店,当我需要在我的代码中存储时,有必要创建一个商店,只需定义并传递给他的模型和获取数据的URL。 这是我的商店:

Ext.define('base.common.store.BaseStore',{
    extend:'Ext.data.Store',
    remoteSort: true,
    proxy: {
        //url:this.url,
        type: 'ajax',
        pageParam: false, //to remove param "page"
        startParam: false, //to remove param "start"
        limitParam: false, //to remove param "limit"
        reader: {
            type: 'json',
            id: 'id',
            root: 'list'
        }
    }
})  

这是我创建它的实例时:

var dsGroups = Ext.create('base.common.store.BaseStore',{
            model:'base.common.model.Group'
            //proxy:{url:"Group.getGroups"}

        });
dsGroups.getProxy().url = "Group.getGroups";

这个问题是:有一种方法可以在Ext.create调用中注入proxy.url属性来完成这项工作吗? (我不想使用最后一个声明)

任何类型的帮助或想法都是有用的。

1 个答案:

答案 0 :(得分:1)

Ext.define('base.common.store.BaseStore',{
    extend:'Ext.data.Store',
    remoteSort: true,

    defaultProxyCfg: {
        type: 'ajax',
        pageParam: false, //to remove param "page"
        startParam: false, //to remove param "start"
        limitParam: false, //to remove param "limit"
        reader: {
            type: 'json',
            id: 'id',
            root: 'list'
        }
    }

    constructor: function(config){
        config = Ext.apply({}, config);
        config.proxy = Ext.apply({
            url: config.url
        }, this.defaultProxyCfg);
        this.callParent([config]);
    }
});