Extjs6通过函数从配置中应用属性

时间:2015-09-24 08:26:59

标签: javascript extjs store extjs6

我以前在extjs4中写这个:

Ext.define('Superstore', {
    extends: 'Ext.data.Store'

    config : {
        customer : null,
    },

    applyCustomer : function (value) {
        this.customer = value;
    },

    model : 'Supermodel'

});

我在extjs6中尝试过相同的操作,但没有成功:'

Ext.define('Supermodel', {
    extend: 'Ext.data.Model',

    requires: ['Ext.data.reader.Json', 'Ext.data.proxy.Rest'],

    config: {
        customer: null
    },

    fields: [
        {name: 'id', type: 'string'},
        ...
    ],

    proxy: {
        type: 'rest',
        url: '/customers/{customer}/users',
        reader: {
            type: 'json'
        }

    },

    applyCustomer: function (value) {
        this.customer = value;
        this.proxy.url.replace('{customer}', value);
    }

});

他们删除了魔法吗? 或者是否有其他更好的方法来构建我的代码? 我已经看过一些解决方案,但它们都没有适合我的应用程序。 我通过会话获得customerId,登录后由后端发送。我会通过StoreManager获取商店,获取客户记录并将其应用于代理。

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果您不需要操纵值,请改用update函数:

updateCustomer: function(newValue){
    this.proxy.url.replace('{customer}', newValue);
}

(并删除applyCustomer功能)