-2

我使用 firebase 作为后端数据存储。前端是 Angular。我尝试通过 Angular-nvD3.js 绘制图表。当我尝试从 firebase 读取数据时,需要时间。因此,数组为空 Array[]。然后数据来了,但图表没有更新。

4

1 回答 1

2

您正在空数组上运行 map() ,但在数据到达后不再运行。为您的传入数据添加 $watch,以便您可以将其处理为 x,y 坐标(firebase 可能有更好的方法来处理传入数据,我不熟悉它)。

$scope.$watchCollection('newValues', function(newValues, oldValues){
  angular.forEach(newValues, function(value, index){
    if(!(x in value)){
      newValues[index] = {x: value[0], y: value[1]};
    }
  });
});

此外,在这种情况下根本不要使用 map,它实际上是用常规数组的新实例替换 $scope.data 中的 firebase 数组。

于 2015-08-31T21:22:57.697 回答