echarts通过变量赋值数据无法显示问题结局

时间:2025-03-10 12:51:10

问题描述

        通过ajax进行后台接口请求,,并将返回后的数据进行整理,并赋值给变量,用于图形展示,但尝试过程中发现,echarts图能够渲染出来,但是图上无数据,尝试将数据值赋成固定值时,图中能够正常显示数据。

问题原因

Ajax是异步请求,在请求反馈前echarts已经完成了渲染,所以,当渲染完成后,再对变量进行赋值已经无法生效了。

解决方法

所以我在请求返回后,再对该部分进行渲染,就能够正常的显示图标数据了。

代码示例

调整前

            radiusdata = []
			seriesdata = []
			$.ajax({
				type: "POST",
				headers: {
					token: 'adasdasdasd'
				},
				data: {APPID: appId,},
				url: config.base_server + "/serviceResourceMonitoring/getDatabaseMonitoringVal",
				dataType: "json",
				success: function(res){
					if ( == 'idt-core-200') {
						radiusdata = []
						seriesdata = []
						data = 
						for (var i=0;i<;i++){
							(data[i]['param'])
							(Number(data[i]['val']))
						}

					}
				}
			});


			// var myChart5 = (('line5'));
			var dom = ('line5');
			var myChart5 = (dom, null, {
				renderer: 'canvas',
				useDirtyRect: false
			});
			
			var option = {
				title: [
					{
						text: '表空间使用情况',
						x: 'center'
					}
				],
				polar: {
					radius: [30, '80%']
				},
				angleAxis: {
					max: 100,
					startAngle: 75
				},
				radiusAxis: {
					type: 'category',
					data:radiusdata 
				},
				tooltip: {},
				series: {
					type: 'bar',
					data: seriesdata ,
					coordinateSystem: 'polar',
					label: {
						show: true,
						position: 'middle',
						formatter: '{b}: {c}'
					}
				}
			};

调整后

radiusdata = []
			seriesdata = []
			$.ajax({
				type: "POST",
				headers: {
					token: 'adasdasdasd'
				},
				data: {APPID: appId,},
				url: config.base_server + "/serviceResourceMonitoring/getDatabaseMonitoringVal",
				dataType: "json",
				success: function(res){
					if ( == 'idt-core-200') {
						radiusdata = []
						seriesdata = []
						data = 
						for (var i=0;i<;i++){
							(data[i]['param'])
							(Number(data[i]['val']))
						}
						// var myChart5 = (('line5'));
						var dom = ('line5');
						var myChart5 = (dom, null, {
							renderer: 'canvas',
							useDirtyRect: false
						});
	
						var option = {
							title: [
								{
									text: '表空间使用情况',
									x: 'center'
								}
							],
							polar: {
								radius: [30, '80%']
							},
							angleAxis: {
								max: 100,
								startAngle: 75
							},
							radiusAxis: {
								type: 'category',
								data: ["JZSOA_AUDIT", "JZSXXZX", "USERS", "IDT_MIDDLE85247", "JZSZX", "JZSOA", "JZSCOMMON" ]
							},
							tooltip: {},
							series: {
								type: 'bar',
								data: [0.32, 0.19, 0.32, 0.01, 0.12, 0.46, 0.12 ],
								coordinateSystem: 'polar',
								label: {
									show: true,
									position: 'middle',
									formatter: '{b}: {c}'
								}
							}
						};

						(option);
					}
				}
			});