gpt4 book ai didi

extjs - 将字段动态设置为 extjs 数据存储

转载 作者:行者123 更新时间:2023-12-04 17:44:33 26 4
gpt4 key购买 nike

我正在尝试将字段动态设置为 extjs 数据存储,以便我可以在运行时动态创建不同的网格。

案例A 为我工作。但是当我在 中使用时案例B ,商店的代理卡在以前的模型上,因此网格渲染一团糟。

这两者之间的真正区别是什么?

案例A

Ext.define('FDG.store.reading.FDGDynamicGridStore', {
extend: 'Ext.data.Store'
});

var fdgstore = Ext.create('FDG.store.reading.FDGDynamicGridStore', {
fields: fields,
proxy: {
type: 'memory',
reader: {
type: 'json',
totalProperty: 'tc',
root: 'Result'
}
}
});
fdgstore.loadRawData(output);
this.reconfigure(fdgstore, columns);

案例B
Ext.define('FDG.store.reading.FDGDynamicGridStore', {
extend: 'Ext.data.Store',
proxy: {
type: 'memory',
reader: {
type: 'json',
totalProperty: 'tc',
root: 'Result'
}
}
});

var fdgstore = Ext.create('FDG.store.reading.FDGDynamicGridStore', {
fields: fields
});
fdgstore.loadRawData(output);
this.reconfigure(fdgstore, columns);

最佳答案

这是我认为正在发生的事情:

Ext.data.Model负责持有代理和字段。 MVC 不鼓励在商店上设置这些属性,尽管这是 Ext-JS MVC 出现之前的唯一方法。

商店总是使用与模型对象关联的代理。当您传入 fields一家商店的属性(property),匿名 Model使用默认代理创建。 You shouldn't use that when specifying proxies. From the doc

For anything more complicated, such as specifying a particular id property or associations, a Ext.data.Model should be defined and specified for the model config.



我的建议是您根据字段动态创建模型,这样您就没有任何匿名模型伏都教。
function createModelWithCustomProxy(fields) {
return Ext.define('FDG.store.reading.Mymodel' + Ext.id(), {
extend: 'Ext.data.Model',
fields: fields,
proxy: {
type: 'memory',
reader: {
type: 'json',
totalProperty: 'tc',
root: 'Result'
}
}
}
});

var fdgstore = Ext.create('Ext.data.Store', {
model: createModelWithCustomProxy(fields);
});
fdgstore.loadRawData(output);
this.reconfigure(fdgstore, columns);

关于extjs - 将字段动态设置为 extjs 数据存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22314057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com