0

В AngularJS я хотел бы создать конкретное поведение. Позволь мне объяснить.Попытки и неправильное поведение перенаправления в AngularJS

У меня есть цепочка обещаний, которая перенаправляется на страницу A или на страницу B в конце.

Я бы хотел, чтобы эта цепочка обещаний вызывается (и еще не разрешена), отображается другой шаблон (вид страницы «пожалуйста, подождите»).

сказать, что это еще один способ, рабочий процесс ожидается является:

  • Пользователь нажимает на кнопку на странице, обещание называется
  • Во время разрешения обещание, пользователь видит ожидание стр.
  • Когда обещание (цепь обещаний на самом деле) разрешен, пользователь перенаправляется на страницу A или B. страницы

В настоящее время, во время разрешения посыла, страница остается тем же самым, что это нормально, но я не хочу этого.

Отказ от ответственности: Я начинаю с концепциями Javascript, поэтому, возможно, я использую то, что я не должен использовать.

Спасибо за помощь.

ответ

0

Вы можете сделать что-то вроде этого

HTML

<div ng-show="isLoading" class="loading">Please wait ...</div> 

<div ng-show="isLoading == true"> 
Normal content of your page ... 

<a ng-click="doSomePromiseChain()">click me</a> 
</div> 

, а затем в угловой контроллер

$scope.isLoading = false; 
$scope.doSomePromiseChain = function() { 
$scope.isLoading = true; 
//call your promise chain 
} 

Таким образом, когда пользователь нажимает на кнопку, угловые наборы isLoading к истине, и шоу Сообщение «Подождите ...». Когда обещание разрешено, вы продолжаете перенаправление на A или B

+0

Это основная структура, но обычно необходим семафор, а не мьютекс. Вы хотите иметь счетчик для 'isLoading' и проверить, не отображается ли оно до 0, так что если загружается несколько элементов, вы не получите странных вспышек и странного поведения. –

+0

Спасибо за это решение! Единственная оставшаяся проблема заключается в том, что когда я нажимаю «назад», isLoading по-прежнему остается True (означает, что контроллер не вызывается?) –

+0

Вы имеете в виду «Назад» в браузере? Или у вас есть пользовательская кнопка «назад», встроенная в ваше приложение? –

Смежные вопросы