Angular不会更新ng-show

时间:2018-08-27 23:42:53

标签: html angularjs ng-show

我有一个表,该表具有每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>

1 个答案:

答案 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