У меня есть страница, которая будет вызывать метод search_hotels.
Он должен подождать около 2 секунд, чтобы сервер вернул JSON.
И размер возвращенного JSON содержит 2 предмета.
Для обработки и рендеринга всех элементов с ng-repeat требуется 2 ~ 3 секунды.
Какая лучшая практика показывает окно загрузки, чтобы заставить людей ждать?
function search_hotels(q_param) {
roomSkuService.search(q_param).$promise.then(function(resp) {
_.each(resp, function(item) {
var region = item.hotel.region;
if ($scope.region.list.indexOf(region) < 0) {
$scope.region.list.push(region)
}
});
$scope.hotels = _.groupBy(resp, function(row) {
return row.hotel_id;
});
});
}
Я бы рекомендовал вам использовать $ timeout, чтобы скрыть окно загрузки после завершения рендеринга.
function search_hotels(q_param) {
//show the loading window
roomSkuService.search(q_param).$promise.then(function(resp) {
_.each(resp, function(item) {
var region = item.hotel.region;
if ($scope.region.list.indexOf(region) < 0) {
$scope.region.list.push(region)
}
});
$scope.hotels = _.groupBy(resp, function(row) {
return row.hotel_id;
});
//execute after rendering
$timeout(function(){
//hide loading window
},0);
});
}