在我的代码段中,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);
}
});
答案 0 :(得分:2)
我怀疑存在渲染错误,因为当我将其添加到我的代码中时(在定义应用程序之前),替换图表有效:
Ext.override(Rally.ui.chart.Chart,{
onRender: function () {
this.callParent(arguments);
this._unmask();
}
});