我以前在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获取商店,获取客户记录并将其应用于代理。
提前致谢。
答案 0 :(得分:2)
如果您不需要操纵值,请改用update
函数:
updateCustomer: function(newValue){
this.proxy.url.replace('{customer}', newValue);
}
(并删除applyCustomer
功能)