У меня есть простой элемент div div. Когда пользователь нажимает кнопку " Submit
, дорогостоящие вычисления запускаются на бэкэнд, поэтому я хочу угаснуть всю карту Google, чтобы пользователь не переходил и не показывал, что эта работа выполняется.
Упрощенный пример: http://jsfiddle.net/8jhsxbpo/4/
<div id="map_canvas" ></div>
<button ng-click="getPlace()" type="button">Submit</button>
Примечание. Отправить не блокирует остальную часть страницы. Выполнение этого с использованием углового сервиса $http
.
$scope.getPlace = function(term, locale) {
return $http.get('http://localhost:8080/search', {
params: {
term: term,
locale: locale
}
}).then(function(response){
renderMap(response);
});
};
Мой проект написан на Bootstrap 3 + Angular Js.
Вопрос. Как я могу убрать или отключить элемент и отобразить значок загрузки во время выполнения задания?
Перед тем как сделать запрос затухать на карте, отобразить загружаемый текст и после получения ответа скрыть текст и пометить карту
$scope.getPlace = function(term, locale) {
$("#map_canvas").fadeOut();
document.getElementById("loading").style.display = "table";
return $http.get('http://localhost:8080/search', {
params: {
term: term,
locale: locale
}
}).then(function(response){
$("#loading").hide();
$("#map_canvas").fadeIn();
renderMap(response);
});
};
Добавьте элемент div и span и установите стиль.
<div id="loading" class="loading-div">
<span class="loading-span">Loading...</span>
</div>
<div id="map_canvas" ></div>
<style>
.loading-div {
display : none;
width: 250px; //set width of map div
height: 400px; //set height of map div
text-align: center;
}
.loading-span {
display: table-cell;
vertical-align: middle;
}
</style>
map
и не был перегружен?
Что-то вроде этого:
<div id="loading"></div>
<div id="map_canvas" ></div>
<button ng-click="getPlace()" type="button">Submit</button>
var showLoader = function () {
$("#map_canvas").hide();
var loader = '<img id="loaderImage" src="/Content/Images/Loaders/loading4.gif" style="width:150px;height:150px;" />';
$("#loading").addClass("text-center");
$("#loading").append(loader);
};
var hideLoader = function () {
$("#map_canvas").show();
$("#loading" + " img:last-child").remove();
$("#loading").removeClass("text-center");
};