我有一个表,其中的数据表示大约每10秒更新一次,由“当前”列表表示。正如您在下面的代码片段中看到的,两个ng-show依赖于对象的状态值。我知道列表正在用新值更新,所以第二个ng-show应该显示,而不是第一个,但它只在我刷新页面时更新,而不是自动更新。当对象的Status字段的值发生变化时,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>发布于 2018-08-29 13:59:51
您可以应用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
https://stackoverflow.com/questions/52048255
复制相似问题