echart报错: Component series.XXX not exists. Load it first
百度的都不对,也不是版本升级引起的,即使将版本换成以前的还是一样报错。
最后一点一点的贴代码,发现把后天输出的数据贴到前端就没问题,直接使用后台输出的数据就报错,最后只好在前端转两次
先看后台的输出部分:在显示前计算出各部分的值,然后用ViewBag传到前台。
public async Task<IActionResult> Detail(Guid Id) { var model = await _appService.GetById(new EntityDto<Guid>() { Id=Id}); var EndTime = (model.EndTime != null && model.EndTime > DateTime.MinValue) ? model.EndTime : DateTime.Now; var difference = (EndTime - model.StartTime).TotalHours; var legend = model.MonitorTypes.Select(t => t.BaseName).ToList();// model.MonitorList.DistinctBy(p => p.TypeName).ToList(); if (model.MonitorList.Count > 0) { legend = model.MonitorList.DistinctBy(p => p.TypeName).Select(t => t.TypeName).ToList(); var xAxis = model.MonitorList.DistinctBy(p =>p.CreationTime.ToString(difference > 24 ? "dd HH:mm" : "t")).Select(p=>p.CreationTime.ToString(difference > 24 ? "dd HH:mm" : "t")).ToList(); var yAxis = model.MonitorList.GroupBy(t => t.TypeName).Select(t => new { name = t.Key, type = "line", data = t.Select(p => p.MValue).ToList() }); ViewBag.ChartData = new { legend, xAxis, yAxis }; } else ViewBag.ChartData = new { legend, xAxis=new List<string>(), yAxis=new List<string>() }; model.MonitorList = new List<MonitorHistoryListDto>(); ViewBag.modules =model; return View(); }
前台正常是这样接收的
var ChartData=@Json.Serialize(ViewBag.ChartData);
然后就可以直接使用,现在在使用前加一句:
var datas = JSON.parse(JSON.stringify(parent.ChartData));
为什么?我也不知道,反正为了这个鬼错误,折腾了不下半天了,那个parent是因为小伙伴把图标的显示写在ifram里面的
将偷懒进行到极致,是一个程序员的基本素养