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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值