Я сталкивался с этой проблемой 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();
});