У меня есть проект, в котором я отображаю список записей для моей HTML-страницы, например, этот пример, из которого я взял:
https://www.w3schools.com/angular/ng_ng-repeat.asp
<body ng-app="myApp" ng-controller="myCtrl">
<h1 ng-repeat="x in records">{{x}}</h1>
<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
$scope.records = [
"Alfreds Futterkiste",
"Berglunds snabbköp",
"Centro comercial Moctezuma",
"Ernst Handel",
]
});
</script>
</body>
Теперь все это прекрасно работает, когда $scope.records
определен статически.Но моя проблема в том, что мне нужно получить свои записи из REST API, который вызывается из моего сервиса, например:
<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope, myService) {
myService.getRecords(function(records) {
$scope.records = records.data; // An array of records
});
});
</script>
Очевидно, что когда я вызываю myService.getRecords(...)
, я передаю ему анонимную функциюкак обратный вызов, который выполняется asyc отложенным образом.
Я регистрирую результаты records
, поэтому я знаю, что мой вызов работает, и мои данные хороши и корректны.Но похоже, что $scope.records
не знает, что оно было только что обновлено.
Обновление: 2018.10.10 - Найдено!Искал это, но нигде не мог найти ответ.Вскоре после публикации вопроса я нашел его в двух местах.
Я опубликую ссылки здесь в качестве ответа для тех, кто ищет такое же решение.