从商店EXTjs捕获动态数据

时间:2018-02-12 13:07:25

标签: arrays extjs push

我想在图表中动态加载数据。

如果我的数据是:

"data": [
    {
        "A": "11",
        "DATE": "2018-02-07",
        "B": "100"
    },
    {
        "A": "12",
        "DATE": "2018-03-04",
        "B": "1"
    }
]`

视图部分是

loadChart: function () {

var cha = this.down('#charid');
var iii = null;
    Ext.Ajax.request({
        url: utils.createUrl('api', 'dashboard-read'),
        async: true,

        callback: function(opts, success, response) {
            try {
                if (success) {


var fields = ['A', 'B'];

cha.series.clear();
    for(var i=0;i<fields.length;i++){

    cha.series.add({           
    type: 'line',
    axis: 'left',
    xField: 'DATE',
    border: false,
    flex: 1,
    title: fields[i],
    yField: fields[i],      
    markerConfig: {
        radius: 4
    },

}

我需要的是在视图中定义var fields = ['A', 'B'];而不是动态地将数据从后端推送到fields数组。因为后端可能会在不同的时间发送不同的公司。所以不能硬编码。

1 个答案:

答案 0 :(得分:0)

使用以下方法:

...
callback: function(opts, success, response) {
    if (success) {
        responseText.data.forEach(function(o){
            cha.series.add({           
               type: 'line',
               axis: 'left',
               xField: 'DATE',
               border: false,
               flex: 1,
               title: o.A,
               yField: o.B,      
               markerConfig: {
                   radius: 4
               }
           });
        });
    }
}
...