echarts 的tooltip 自定义提示框 formatter无法使用回调函数

在使用echats时无论如何都无法使用formatter 做函数回调

今天在做一个功能时需要重新写一个Tooltip的样式,但是发现只能使用字符串模板的格式

tooltip:{
	trigger: 'axis',
	formatter:'<div style="padding:10px;fontSize:14px;">' + {b0} : {c0} + '</div>' +'<div style="padding:10px;fontSize:14px;">' + {b1} : {c1} + '</div>' 
}

上面是一个数据的简写模式,{a},{b},{c}是echats中代表数据的占位数字 但是这样写有个大麻烦就是我对数据进行了对比,比如2月份和3月份做对比,那2月份没有30日就会直接显示{b0}:{c0}
所以我不得不重新来找导致我无法使用回调函数的原因,我在界面上打印了传入echats的option发现了一个大问题,配置中居然没有我写的回调函数!!!,这是怎么回事?
然后我重新看了一遍代码,终于恍然大悟!!!

[{a:1,b:2,c:function(){console.log(‘c’)}},{a:2,b:3},…]

对象数组越复杂,那数据只做浅拷贝的可能性越大。
在写代码时我们为了避免数据只做浅拷贝,导致数据不及时更新的问题,经常会通过改变数据类型的方式来实现。
比如对于对象数组
我们一般可能直接用传统方法进行深拷贝处理:

JOSN.parse(JSON.stringfy())

这种方法可以很好的做到深拷贝但是会有个问题,他会把对象中存在的function方法去掉,同样我在更新echats配置时也是用

JOSN.parse(JSON.stringfy(Option))

导致formatter 函数被去除了。
为了解决这个问题,我们使用lodash 函数库 的 cloneDeep()方法,就可以避免发生类似的问题。

setOption(lodash.cloneDeep(option))

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值