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

问题描述

        通过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 (res.code == 'idt-core-200') {
						radiusdata = []
						seriesdata = []
						data = res.data
						for (var i=0;i<data.length;i++){
							radiusdata.push(data[i]['param'])
							seriesdata.push(Number(data[i]['val']))
						}

					}
				}
			});


			// var myChart5 = echarts.init(document.getElementById('line5'));
			var dom = document.getElementById('line5');
			var myChart5 = echarts.init(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 (res.code == 'idt-core-200') {
						radiusdata = []
						seriesdata = []
						data = res.data
						for (var i=0;i<data.length;i++){
							radiusdata.push(data[i]['param'])
							seriesdata.push(Number(data[i]['val']))
						}
						// var myChart5 = echarts.init(document.getElementById('line5'));
						var dom = document.getElementById('line5');
						var myChart5 = echarts.init(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}'
								}
							}
						};

						myChart5.setOption(option);
					}
				}
			});

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值