У меня есть приложение angularJS с бесконечной прокруткой: это означает, что каждый раз, когда я добираюсь до нижней части страницы, происходит новый вызов ajax.pre-fetch в AngularJS при просмотре изображения
Я просто хочу проверить, когда страница полностью загружена, каждый раз, когда происходит вызов ajax. Если я могу проверить, загружена ли страница, я могу предварительно выбрать json для следующей страницы.
window.onload
работает только для статических страниц, а $scope.on/watch('$viewContentLoaded', function() {})
уволен как первое, когда я делаю вызов ajax. Я имею в виду: он уволен, и после этого я вижу элементы вызова ajax. Его следует уволить как последнее, когда страница загружена.
$scope.nextPage = function() {
$http.jsonp(url).success(function(response) {
console.log(response.data);
}
$scope.$watch('$viewContentLoaded', function() {
console.log("page is loaded");
});
}
Из-за способа переваривают циклов работы не простой механизм, чтобы определить это в виду. Покажите, как вы используете '$ scope.nextPage()'. Похоже, что вы должны помещать предварительную выборку и выталкивать данные для просмотра из предыдущего кеша – charlietfl
Не могли бы вы просто поместить свой код под консоль.log в обратный вызов 'success'? Вот когда данные загружаются. Добавьте «$ timeout» вокруг него, если вы хотите дождаться, пока DOM покажет новое состояние области, прежде чем что-то делать. – floribon
Почему? Его асинхронный. Зачем ждать, пока загрузится предыдущая страница (т. Е. Ее обещание по запросу ajax) до кэширования некоторых дополнительных данных? – C14L