Я новичок в angularjs, я уже читал, что с помощью ng-bind вы должны вызвать $ scope.apply (), чтобы обновить вывод, когда изменился массив источника данных.Но я также читал, что он должен работать как шарм и из коробки, когда вы используете ng-repeat .В следующей ситуации отображаются не все элементы на странице:
<body ng-app="gallery">
<div ng-controller="GalleryController">
{{imageFolder}}
<div class="uk-child-width-1-5 uk-grid-small" uk-grid>
<div ng-repeat="image in imageFolder">
hier
</div>
</div>
</div>
</body>
И JS:
let gallery = angular.module('gallery', []);
gallery.controller('GalleryController', function($scope) {
$scope.imageFolder = [1,2];
setTimeout(function(){
console.log($scope);
$scope.imageFolder.push(6,7);
console.log($scope);
console.log($scope.imageFolder)
},1000);
$scope.imageFolder.push(3,4,5);
console.log($scope);
});
, а в интерфейсе мы видим:
[1,2,3,4,5] hier hier hier hier
6 и 7 видны в console.log, но обновление внешнего интерфейса не инициируется (?).Позже в этом проекте информация об изображении, такая как url и title, должна быть загружена в DOM через Ajax (sharepointplus) (но это займет около 5-7 секунд) - Моя первая версия не показала никаких изображений - даже ng-repeat былоне вызывается из-за той же проблемы, вызванной setTimeOut ...
что я могу сделать здесь, чтобы позволить угловое обновление при изменении содержимого объекта aka: "пустой массив -> заполненный массив"?
спасибо за вашу помощь и предложения.