【问题标题】:Create dynamic model创建动态模型
【发布时间】:2015-10-10 16:32:13
【问题描述】:

大家好,我正在学习动态模型,我需要一个循环来创建列,我只找到了这个“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);的返回

【问题讨论】:

    标签: javascript extjs dynamic model


    【解决方案1】:

    您的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();
            }
        });
    }
    

    但是 imo 它可以做得更干净。列和字段可以在metachange 事件中动态设置。当你听到这个时,你可以从那个地方用商店和列重新配置你的网格。在onSqlChange 中,您只需再次加载您的商店(这将导致触发metachange 并重新配置您的网格)。

    更多信息: https://stackoverflow.com/a/31382971/408487

    【讨论】:

    • 不错的解决方案它似乎工作:) 谢谢你!你对动态商店有什么想法吗?
    • 动态商店是什么意思?
    • 我的网格需要一个存储来加载数据,或者我可以在这里放弃它吗?
    • 为什么不创建一个存储什么来检索你的 sql 数据?在元更改中用这个存储重新配置网格,以及元数据中的列。之后您只需要加载您的商店,并且您的网格将使用商店中的新数据和元数据中的新列重新配置。请阅读本文了解更多架构:docs.sencha.com/extjs/4.2.2/#!/guide/mvc_pt2
    • 该死的我不能使用 addlListener 因为我有 extJs 4.1 :/
    猜你喜欢
    • 2013-06-21
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 2019-10-24
    • 1970-01-01
    • 2023-01-31
    相关资源
    最近更新 更多