1

我曾经在 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);
    }

});

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

提前致谢。

4

1 回答 1

2

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

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

(并删除该applyCustomer功能)

于 2015-09-24T08:39:47.860 回答