Angular не обновляет нг-шоу - PullRequest
0 голосов
/ 28 августа 2018

У меня есть таблица, из которой у меня есть представление данных, которое обновляется каждые 10 секунд или около того, представленное «текущим» списком. Как видно из фрагмента кода ниже, два ng-show зависят от значения Status объекта. Я знаю, что список обновляется новыми значениями, так что должно показываться второе ng-шоу, а не первое, но оно обновляется только при обновлении страницы, а не автоматически. Разве ng-show не должно обновляться автоматически при изменении значения поля Status объекта?

    <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 голосов
/ 29 августа 2018

Вы можете применить функцию AngularJS $digest().

Для получения дополнительной информации о функции $digest() перейдите к AngularJS $ watch (), $ digest () и $ apply ()

Вам нужно изменить код контроллера на что-то вроде этого:

var app = angular.module('test', []);

app.controller('TestCtrl', function ($scope) {
   $scope.testValue = 0;

setInterval(function() {
    console.log($scope.testValue++);
    $scope.$apply() 
    }, 500);
});

Jsfiddle: Ссылка

...