使用d3加载csv文件后范围不更新

时间:2014-08-31 05:38:41

标签: javascript angularjs csv d3.js angularjs-scope

我有一个节点服务器,当我点击/scheduleE路由时,它会向客户端发送csv文件。在我的控制器中,我点击此路线并更新范围。我希望页面上的范围更新。

app.controller('ETableCtrl', function($scope){

    $scope.payments = []
    $scope.$watch('payments', function(){
        console.log('value changed!')
    })

    d3.csv('/scheduleE', processData('01/01/14'), function(payments){
        $scope.payments = payments;
        console.log($scope.payments);
    })
})

在视图中$scope.payments保持并且空数组和“值已更改!”一开始只记录一次。 $scope.watch("payments")未在视图中更新。它仍然是一个空阵列。

但是,代码会将对象数组注销到控制台。为什么我的范围不会在视图中更新?

1 个答案:

答案 0 :(得分:1)

回调发生在Angular应用程序范围之外。更新$ scope.payments后尝试调用$scope.$apply();

有更好的方法可以做到这一点,但您至少可以确认问题。