Изменения в области видимости не обновляют DOM - PullRequest
0 голосов
/ 15 февраля 2019

Я сталкивался с этой проблемой angularJs, когда изменение массива не обновляет DOM, даже при наличии привязки.

Я пробовал все, используя $ scope. $ Apply, $ scope. $ evalAsync, а также попытался использовать vm вместо $ scope.

Код AngularJs:

app.controller("controller", function ($scope){
    $scope.managers = [];

    $scope.RefreshManagerList = async function(){
        var response = await App.getStoreManagers();
        $scope.managers = response;
    };

    $scope.Setup = async function(){
        await App.start();
        await $scope.RefreshManagerList();
    };

    $scope.Setup();
});

HTML-код:

<header>
    <h1>Administrator Panel</h1>
</header>

<div class="jumbotron">
    <h3>Store Manager List</h3>

    <ul class="list-group">
        <li class="list-group-item" ng-repeat="manager in managers">
            {{manager}}
        </li>
    </ul>
</div>

Ожидается, чтоесли для $ scope.managers установлено значение response, список должен отображаться на HTML-странице.

EDIT:

Попытка сделать это также не работает.Console.log по-прежнему дает ожидаемый объект для отображения в списке.При малейшем взаимодействии со страницей список автоматически загружается:

app.controller("administratorController", function ($scope){
    $scope.managers = {content: null};

    $scope.RefreshManagerList = function(){
        App.getStoreManagers().then(function(response){
            $scope.managers.content = response;
            console.log($scope.managers.content);
        });
    };

    $scope.Setup = function(){
        App.start().then(function(){
            $scope.RefreshManagerList();
        });
    };

    $scope.Setup();
});
...