我有一个函数getData,它只增加var计数器的值。
无论何时发生增量,我都希望angular能够自动更新div中的内容
我尝试过ng-bind,但只有在点击表单元素时它才有效。
enquire.controller('DisplayEnquiries', function($scope){
$scope.getData = function(){
console.log('Run ' + $scope.counter);
$scope.counter;
if($scope.counter == undefined || $scope.counter == null){
$scope.counter = 1
$scope.counter++;
}
else{
$scope.counter++;
}
console.log('Execute ' + $scope.counter);
$scope.count = $scope.counter;
}
setInterval($scope.getData, 1000);
});
HTML
<div class="col-sm-5" ng-controller="DisplayEnquiries">
<h4>Unread User Queries</h4>
<p>
Count : <span ng-bind="count"></span>
</p>
</div>
答案 0 :(得分:5)
Angular确实有摘要系统,有助于在视图上提供更新的绑定。但是当您更新来自角度的外部世界的角度绑定,如any (async) event
时,角度无法理解变化,结果消化周期不会引发更新的绑定。因此,在您的情况下,您正在运行更新绑定的setInterval
(异步事件)。
在这种情况下,您需要手动启动摘要周期($scope.$apply()
/ $scope.$digest()
)以查找更改并相应地更新视图上的绑定。但我仍然希望您使用$interval
服务,该服务是开箱即用的,与setInterval
&amp;这确实照顾了摘要周期以保持同步绑定。
您应该使用$interval
代替setInterval
$interval($scope.getData, 1000);