Я пытаюсь реализовать разбивку на страницы на моей веб-странице.
Когда я выбираю страницу на вкладке pagination, выполняется следующее:
$("#pagination-demo").twbsPagination({
totalPages: 100,
visiblePages: 7,
onPageClick: function(event, page) {
$scope.PaginateVideos(page);
}
});
Что вызывает эту функцию:
$scope.PaginateVideos = function(pageNum, searchcriteria) {
var searchCriteria;
searchCriteria = searchcriteria;
return $http({
url: '/videos/GetVideos?page=' + pageNum + '&search=' + searchCriteria,
method: 'Get',
headers: {
'Content-Type': 'application/json'
}
}).success(function(response, status) {
if (status === 200) {
$scope.VideoDetailsModel = {};
$scope.VideoDetailsModel.Data = [];
return $scope.VideoDetailsModel.Data = response;
}
});
};
Когда я проверяю источник в моем браузере просмотра, я вижу, что $ scope.VideoDetailsModel.Data обновляется свежими данными.
Однако элементы ng-repeat показывают старые данные.
После устранения неполадок я могу подтвердить, что вызов события onPageClick: в $ ("# pagination-demo"). TwbsPagination Является источником проблемы.
Если я вызываю функцию PaginateVideos напрямую без разбивки на страницы, работает ng-repeat.
Я пробовал $ scope.apply().. example
$scope.VideoDetailsModel.Data = response
$scope.apply()
Я могу подтвердить, что в pagination VideoDetailsModel.Data определенно есть новые данные.
Не могли бы вы помочь.....
Я думаю, что ваша проблема может быть связана с изменением ссылочного объекта.
В вашем обработчике успеха вы сделали это:
if (status === 200) {
$scope.VideoDetailsModel = {};
$scope.VideoDetailsModel.Data = [];
return $scope.VideoDetailsModel.Data = response;
}
Можете ли вы попробовать переместить $scope.VideoDetailsModel = {};
вне зависимости от объема вашего контроллера? Что-то вроде:
$scope.VideoDetailsModel = {};
$scope.PaginateVideos = function(pageNum, searchcriteria) {
...
return $http(...).success(function(response, status) {
if (status === 200) {
return $scope.VideoDetailsModel.Data = response;
}
});
};
У меня был тот же ng-контроллер в двух разных разделах моей веб-страницы