从观察者填充角度图表 - 奇怪的行为

时间:2017-06-12 12:06:55

标签: javascript angularjs angular-chart

我遇到的问题是,从工厂广播更新时,我的角度图表没有显示数据。我正在根据用户输入设置标签和数据,这可能会改变:

// Listener function in controller, receives data from factory
$scope.$on("New Data", function(event, data, ID) {
        processTripData(data, ID).then(function(result) {
            setTypeDistributionBar(result).then(function(r) {
                buildTypeDistributionBar(r.data, r.labels);
            })
        })
    })
var buildTypeDistributionBar = function(data, labels) {
        $scope.distributionLabels = labels;
        $scope.distributionData = [data];
    }

问题是这只会在第二次调用buildTypeDistributionBar后更新图表。因此,此图表始终是用户输入的1个查询。

问题:为什么图表仅在第二次调用之后显示?我怎样才能实现它立即更新?

更新:我创建了一个fiddle来证明这一点,它没有像我一样显示相同的行为,但是类似。

1 个答案:

答案 0 :(得分:1)

我发现这可能只是一个与scope相关的问题,this question的答案会引导我进行以下操作。基本上$scope.$apply();强制消化。现在图表不再落后了一步:

var buildTypeDistributionBar = function(data, labels) {
        $scope.distributionLabels = labels;
        $scope.distributionData = [data];
        $scope.$apply();
}