我扩展了Store的定义:
n
我称之为:
Ext.define('IMStore', {
extend : 'Ext.data.Store',
proxy : {
type : 'ajax',
url : '.im.read',
reader : {
root : 'item'
}
}
});
这样就可以了。第一次时我称之为。如果我随后使用不同的var gridStore = Ext.create('IMStore',{
model : type
});
值再次调用Ext.create('IMStore',{model : type })
,则看起来新的Store实例与我创建的第一个实例具有相同的模型,即使我传入了不同的值。
如果模型被更改,似乎可能需要重新创建代理? 有什么想法吗?
答案 0 :(得分:2)
由于您的代理配置直接声明为IMStore
类成员,因此代理实例在第一个IMStore
实例中创建时会被覆盖。这就是为什么首先创建的代理实例然后在所有IMStore
实例之间共享的原因。第一个模型也是共享的,因为它链接到代理。
为避免这种情况,请在构造函数中移动代理定义:
Ext.define('IMStore', {
extend: 'Ext.data.Store',
constructor: function() {
this.proxy = {
type: 'ajax',
url: '.im.read',
reader: {
root: 'item'
}
};
this.callParent(arguments);
}
});