angular使用ECharts,data动态传参失败记录

问题描述:

在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 = [ ] '


猜你喜欢

转载自blog.csdn.net/qq_36414265/article/details/81000129
今日推荐