问题描述:
在angular使用echarts时,data使用的是$scope.timeArr的赋值方法,因为一些原因,timeArr数组使用的是push一个个传值进去,并且在某些条件改变时,timeArr需要重新push新的值进去,老的值去掉,在这一过程中,echarts的data获取不到值了。
错误例子://echarts中
data:$scope.timeArr
//angular中
$scope.timeArr = []
...
function fn(){
$scope.timeArr = []
for(let i=0;i<length;i++){
$scope.timeArr.push("a")
}
}
像上面这样改变的数组,echarts不会获取到,data会为空。
解决办法:
$scope.timeArr.splice(0,$scope.timeArr.length);
用这个方法把数组放空,再传值进去就行了。
原因:
我个人的理解的echarts中的data,保存的是参数的内存地址,所以在虽然我后面设置了
$scope.timeArr = []
但此时的timeArr已经不是原来的那个timeArr了,所以方法解决不止一个,只要原地址不变,想办法把原数组放空就行了。
既然到这里了,顺便再总结一下清空数组的方法:
1.splice(如上) 2.强制设置数组的’length=0‘; 3.使数组为空数组' arr = [ ] '