在我的代码段中,Deferred / Promise返回了一个名为myChart的已配置Highchart Chart对象。第一次,我的图表被添加到一个容器中,并且所有内容都完美呈现。但是,在随后的调用中,我的逻辑执行removeAll来刷新容器,而我的图表将随着loadMask(“ Loading ...”)不断旋转而呈灰色显示。

我研究了myChart对象数据的方差,它似乎很稳定。我什至尝试渲染更加简化的图表对象,并且在每种情况下,随后的渲染都随着loadMask旋转而挂起。

有什么想法为什么它可能会挂在所有后续电话上?

我已经读到了一些相关的线程,认为缓冲可能是一个问题,但是由于我使用数组并使用存储对象将数据加载到图表中,因此我认为这并不适用。

在此先感谢您提供任何提示或指示!

// Set chart data
that._setChartData().then({

    success: function( myChart ) {
        // Render chart
        if (gridContainer.items.length > 0) {
            // Remove/Clear container objects ... if exists
            Ext.Array.each( gridContainer.items, function( aItm ) {
                switch( aItm.itemId ) {
                    case 'topbox':
                        break;

                    case 'buttonBox':
                        if ( aItm.items.length > 0 ) {
                            aItm.removeAll( true );
                        }
                        break;

                    case 'sliderBox':
                        if ( aItm.items.length > 0 ) {
                            aItm.removeAll( true );
                        }
                        break;

                    case 'chartbox':
                        if ( aItm.items.length > 0 ) {
                            aItm.removeAll();
                        }
                        break;
                }
            });
        }
        that.down('#chartbox').add(myChart);
    }
});

最佳答案

我怀疑存在渲染错误,因为当我将其添加到代码中(在定义应用程序之前)时,替换图表即可:

Ext.override(Rally.ui.chart.Chart,{
    onRender: function () {
        this.callParent(arguments);
        this._unmask();
    }
});

10-07 18:52