大家好,我正在研究动态模型,我需要一个循环来创建列,我只找到了这个“items.push({”,但我不知道如何使用它。 谁能帮帮我。
onSqlChange: function (gridPanel, value) {
var me = this;
Ext.Ajax.request({
url: '{url action=getSqlDetails}',
params: {
fileName: value
},
success: function (response) {
var text = JSON.parse(response.responseText);
console.log(text);
me.mainWindow.grid.show();
var columns = [];
Ext.create('Ext.data.Model', {
items: columns
});
}
});
}
返回自:JSON.parse(response.responseText);
最佳答案
你的 model
没有属性 items
。您的 grid
确实有一个 store
,那个 store
有一个 model
而那个 model
有字段
。您的网格
有列
。
尝试 reconfigure您的网格包含您通过 ajax 调用检索的列:
onSqlChange: function (gridPanel, value) {
var me = this;
Ext.Ajax.request({
url: '{url action=getSqlDetails}',
params: {
fileName: value
},
success: function (response) {
var text = JSON.parse(response.responseText),
grid = me.mainWindow.grid,
columns = text.columns;
grid.reconfigure(columns);
grid.show();
}
});
}
但我觉得它可以做得更干净。列和字段可以在 metachange
事件中动态设置。当你听到这个时,你可以从那个地方用商店和列重新配置你的网格。在 onSqlChange
中,您只需再次加载您的商店(这将导致触发 metachange
并重新配置您的网格)。
关于javascript - 创建动态模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32559494/