我有一个表,该表具有每10秒左右更新一次的数据表示,由“当前”列表表示。正如您在下面的代码片段中看到的那样,两个ng-show取决于对象的Status值。我知道该列表将使用新值进行更新,因此应该显示第二个ng-show而不是第一个,但是它仅在刷新页面时更新,而不是自动更新。更改对象的“状态”字段的值时,是否应该自动更新ng-show?
<table>
<tr ng-repeat="object in current">
<td>Name: {{object.Name}} <br /> Status: {{object.StatusMessage}}<br /> ID: {{object.ID}} <br /> User: {{object.UserName}}</td>
<td>
<div ng-show="object.Status == 2 || object.Status == 3">
<img ng-src="{{getScreenshot(object.Name)}}" style="width: 500px; height: 300px">
</div>
<div ng-show="object.Status < 2 || object.Status > 3" style="font-size: large; font-weight: bold">
Screenshot not available.
</div>
</td>
</tr>
</table>
答案 0 :(得分:0)
您可以应用AngularJS $digest()
函数。
有关$digest()
函数的更多信息,请转到AngularJS $watch() , $digest() and $apply()
您需要将控制器代码修改为以下内容:
var app = angular.module('test', []);
app.controller('TestCtrl', function ($scope) {
$scope.testValue = 0;
setInterval(function() {
console.log($scope.testValue++);
$scope.$apply()
}, 500);
});
Jsfiddle:Link