我有一个controller,它有以下调用:
userFactory.getScore(_token, function (response) {
$scope.scores = response;
renderCharts(response,$scope);
score.resolve();
});在这里,userFactory是一个工厂。
现在在我的function renderCharts中:
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文本的值?
发布于 2015-06-30 15:15:27
setInterval在angulars $digest-cycle之外,因此angular不会更新数据绑定。您可以使用$apply,但我要说,这是一种糟糕的做法。最好使用$timeout或$interval。这将触发$digest循环。例如:
function renderCharts(response,$scope) {
// ...
$interval(function() {
// Logic to update highchart
$scope.current_target_label = {"label":"Target Score"};
}, delay);
}备注:
当然,你需要在你需要的地方注入服务。
setInterval(function($scope) {。这里的$scope可能是未定义的,因此隐藏了外部的$scope变量。https://stackoverflow.com/questions/31131790
复制相似问题