详细看我的代码内容。我注释部分标注了。这段代码在demo中的tree的chart的第一个使用。点击myTool进行数据属性重设。就会出错。
配置项如下
/**
* create by chenxiaoou on 2018.03.05
* 仅仅用于展示错误的功能
* 将下面的代码,复制粘贴到
* http://echarts.baidu.com/examples/editor.html?c=tree-basic
* 中间,执行运行。然后点击自己的myTool的小工具
* 就可以看到错误。
* 出错的代码段:
*
* function removeNode(data, dataIndex, symbolEl, group, seriesModel, seriesScope) {
var node = data.tree.getNodeByDataIndex(dataIndex);
var virtualRoot = data.tree.root;
var itemModel = node.getModel(); <----- Uncaught TypeError: Cannot read property 'getModel' of undefined
* 报告完毕
*/
myChart.showLoading();
$.get('data/asset/data/flare.json', function(data) {
myChart.hideLoading();
echarts.util.each(data.children, function(datum, index) {
index % 2 === 0 && (datum.collapsed = true);
});
myChart.setOption(option = {
tooltip: {
trigger: 'item',
triggerOn: 'mousemove'
},
toolbox: {
feature: {
myTool: {
show: true,
title: '自定义扩展方法',
icon: 'image://http://echarts.baidu.com/images/favicon.png',
onclick: function() {
// 执行这段代码会出错
myChart.setOption({
series: [{
data: [{
name: 'root'
}]
}]
});
// 执行上面的代码会出错。
}
}
}
},
series: [{
type: 'tree',
data: [data],
top: '1%',
left: '7%',
bottom: '1%',
right: '20%',
symbolSize: 7,
label: {
normal: {
position: 'left',
verticalAlign: 'middle',
align: 'right',
fontSize: 9
}
},
leaves: {
label: {
normal: {
position: 'right',
verticalAlign: 'middle',
align: 'left'
}
}
},
expandAndCollapse: true,
animationDuration: 550,
animationDurationUpdate: 750
}]
});
});