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里面的

posted @ 2020-02-02 16:09  南东  阅读(9329)  评论(0编辑  收藏  举报