Angular Chart - Loading Indicator
When the Chart visualizes local data, loading is instant. But when the Chart is bound to a remote data source, loading may take a considerable amount of time. To keep the viewer's attention, the Chart can display a loading indicator.
To activate the loading indicator, assign true to the loadingIndicator.enabled property. When activated, the indicator will be displayed or hidden automatically as the chart's data is updated.
jQuery
$(function() { $("#chartContainer").dxChart({ // ... loadingIndicator: { enabled: true } }); });
Angular
<dx-chart ... > <dxo-loading-indicator [enabled]="true"></dxo-loading-indicator> </dx-chart>
import { DxChartModule } from "devextreme-angular"; // ... export class AppComponent { // ... } @NgModule({ imports: [ // ... DxChartModule ], // ... })
Vue
<template> <DxChart ... > <DxLoadingIndicator :enabled="true" /> </DxChart> </template> <script> import DxChart, { DxLoadingIndicator } from 'devextreme-vue/chart'; export default { components: { DxChart, DxLoadingIndicator } } </script>
React
import React from 'react'; import Chart, { LoadingIndicator } from 'devextreme-react/chart'; class App extends React.Component { render() { return ( <Chart ... > <LoadingIndicator enabled={true} /> </Chart> ); } } export default App;
If you need to show or hide the loading indicator at runtime, call the showLoadingIndicator() or hideLoadingIndicator() method.
jQuery
var chart = $("#chartContainer").dxChart("instance"); chart.showLoadingIndicator(); chart.hideLoadingIndicator();
Angular
import { ..., ViewChild } from "@angular/core"; import { DxChartModule, DxChartComponent } from "devextreme-angular"; // ... export class AppComponent { @ViewChild(DxChartComponent, { static: false }) chart: DxChartComponent; // Prior to Angular 8 // @ViewChild(DxChartComponent) chart: DxChartComponent; showLoadingIndicator () { this.chart.instance.showLoadingIndicator(); }; hideLoadingIndicator () { this.chart.instance.hideLoadingIndicator(); }; } @NgModule({ imports: [ // ... DxChartModule ], // ... })
Vue
<template> <DxChart ref="chart" ... > </DxChart> </template> <script> import DxChart from 'devextreme-vue/chart'; export default { components: { DxChart }, methods: { showLoadingIndicator () { this.$refs.chart.instance.showLoadingIndicator(); }, hideLoadingIndicator () { this.$refs.chart.instance.hideLoadingIndicator(); } } } </script>
React
import React from 'react'; import Chart from 'devextreme-react/chart'; class App extends React.Component { constructor(props) { super(props); this.chartRef = React.createRef(); this.showLoadingIndicator = function() { this.chartRef.current.instance().showLoadingIndicator(); } this.hideLoadingIndicator = function() { this.chartRef.current.instance().hideLoadingIndicator(); } } render() { return ( <Chart ref={this.chartRef} ... > </Chart> ); } } export default App;
See Also
If you have technical questions, please create a support ticket in the DevExpress Support Center.