xieziyu / ngx-echarts

An angular (ver >= 2.x) directive for ECharts (ver >= 3.x)
https://xieziyu.github.io/ngx-echarts/
MIT License
1.11k stars 197 forks source link

如何动态更换主题 #75

Closed ReExia closed 6 years ago

ReExia commented 6 years ago

如何动态更换主题 我目前是这样写的,theme的值也变了,但是主题并没有切换过去, <div echarts [options]="options" id="themeCharts" [theme]="currentTheme" ></div>

xieziyu commented 6 years ago

@setsunahao echarts本身的主题是在init时候传入的,也就是说更改主题,是要销毁原先的图表,再重新初始化一张新的图表。 考虑到图表重绘时options, merge等参数的不确定性,ngx-echarts在设计的时候,也没有去检测theme的变化而去自主重新init图表。

如果想要做到动态更换主题,你需要:

ReExia commented 6 years ago

我最后这样搞了 `import * as $ from 'jquery'; declare var echarts: any; createChart(options : any, theme : string){

//清空内容
let container = $("#chartsContainer");
container.empty();

//追加图表div
let child = $("<div id='mychart' style='width:100%;height:500px'></div>");

child.appendTo(container);

let chart = echarts.init(document.getElementById("mychart"),theme);

chart.setOption(options);

} `

NgxEchartsService 应该是我不会用吧,调了下init没起作用.能不能文档上加些NgxEchartsService的例子呢,目前感觉还是不够用

xieziyu commented 6 years ago

NgxEchartsService的例子在demo里面: https://xieziyu.github.io/ngx-echarts/#/usage/NgxEchartsService