首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用带有angularjs的highcharts-ng执行setInterval函数时更改div中的文本

如何在使用带有angularjs的highcharts-ng执行setInterval函数时更改div中的文本
EN

Stack Overflow用户
提问于 2015-06-30 15:09:30
回答 1查看 270关注 0票数 3

我有一个controller,它有以下调用:

代码语言:javascript
复制
userFactory.getScore(_token, function (response) {
    $scope.scores = response;
    renderCharts(response,$scope);
    score.resolve();
});

在这里,userFactory是一个工厂。

现在在我的function renderCharts中:

代码语言:javascript
复制
function renderCharts(response,$scope) {

    $scope.current_target_label = {"label":"Current Score"};
    // Highcharts config object declaration here

    setInterval(function($scope) {
        // Logic to update highchart
        $scope.current_target_label = {"label":"Target Score"};
    }

}

以下赋值不会更新html视图中ng-bind中的值:$scope.current_target_label = {"label":"Target Score"};

我肯定做错了什么,感谢您的任何指示,以便如何在html视图中更新div文本的值?

EN

回答 1

Stack Overflow用户

发布于 2015-06-30 15:15:27

setInterval在angulars $digest-cycle之外,因此angular不会更新数据绑定。您可以使用$apply,但我要说,这是一种糟糕的做法。最好使用$timeout$interval。这将触发$digest循环。例如:

代码语言:javascript
复制
function renderCharts(response,$scope) {
    // ...

    $interval(function() {
        // Logic to update highchart
        $scope.current_target_label = {"label":"Target Score"};
    }, delay);
}

备注:

当然,你需要在你需要的地方注入服务。

  • 在你的原始代码中,你使用了setInterval(function($scope) {。这里的$scope可能是未定义的,因此隐藏了外部的$scope变量。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31131790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档