在我的代码段中,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();
}
});