AngularJS $ обещание изменить местоположение - PullRequest
0 голосов
/ 01 марта 2020

Я использую angularJS $ Location Service для изменения маршрутизации, проблема в $location.url(someUrl) асинхронная, но не возвращает обещание.

Поэтому я искал какое-то решение для этого и нашел эти события:

  1. $scope.$on('$locationChangeSuccess')
  2. $routeChangeStart
  3. $routeChangeSuccess

, но эти события не происходят, например, когда URL-адрес, предоставленный функции $location.url, совпадает с текущим, я ищу какое-то надежное решение, чтобы гарантировать, что $location.url завершит свою работу

1 Ответ

0 голосов
/ 01 марта 2020

Используйте службу $timeout:

$location.url(someUrl);

var promise = $timeout();

Обещание будет выполнено после того, как платформа соберет все вызовы к службе $ location и браузер отобразит новый URL.

Для получения дополнительной информации см.

...