创建动态模型

Create dynamic model

大家好,我正在研究动态模型,我需要一个循环来创建列,我只找到了这个 "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
            });
        }
    });
}

这 return 来自:JSON.parse(response.responseText);

您的 model 没有 属性 items。您的 grid 确实有 storestoremodelmodelfields。您的 gridcolumns.

尝试 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 并重新配置您的网格)。

更多信息: