在Schema配置中的代理URL中使用自定义功能

时间:2015-07-01 08:46:04

标签: extjs extjs5

当我为模型定义基类时,我可以使用默认代理配置配置模式:

Ext.define('App.model.Base', {
    extend : 'Ext.data.Model',

    idProperty : 'ID',

    schema : {
        namespace : 'App.model',
        proxy     : {
            type : 'rest',

            url : '{prefix}/{entityName:lowercase}'
        }
    }
});

其中:url中的小写是Ext.util.Format函数。

如何在此处使用我的自定义函数或在构造上配置它以便我可以将entityName作为变量并对其进行转换(例如在单词之间添加短划线)?

1 个答案:

答案 0 :(得分:0)

您可以在模型构造函数中执行此操作,如下所示:

Ext.define('App.model.Base', {
    extend : 'Ext.data.Model',

    idProperty : 'ID',

    constructor: function(config) {
        // Check your config properly
        if(config) {
            // Your function to build url
            var buildUrl = function (data) {
                // Do stuff
            }

            Ext.apply(this, {
                schema : {
                    namespace : 'App.model',
                    proxy     : {
                        type : 'rest',
                        url : buildUrl(config)
                    }                        
                }
            });
        }

        this.callParent(arguments);
    }
});

像这样创建App.model.Base的新实例:

Ext.create('App.model.Base', {
    // Your url config
    prefix: ...,
    entityName: ...,
    ...
});