【问题标题】:AngularJS $location change promiseAngularJS $位置更改承诺
【发布时间】:2020-06-13 23:24:52
【问题描述】:

我正在使用 angularJS $location 服务进行路由更改, 问题是 $location.url(someUrl) 是异步的,但不返回承诺。

所以我为此搜索了一些解决方案并找到了这些事件:

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

但这些事件不会发生,例如当提供给$location.url 函数的 URL 与当前相同时, 我正在寻找一些强大的解决方案来确保$location.url 已经完成了它的工作

【问题讨论】:

  • 您想通过使用此服务达到什么目的,请详细说明?
  • @AbuSufian 我正在使用 $location 服务来路由和更改我的应用程序中的视图/页面。页面完全替换后,我需要执行其他操作

标签: javascript angularjs ngroute


【解决方案1】:

使用$timeout 服务:

$location.url(someUrl);

var promise = $timeout();

在框架收集到 $location 服务的所有调用并且浏览器呈现新的 url 后,promise 将解析。

有关详细信息,请参阅

【讨论】:

  • 你怎么知道路由已经结束,它可能需要超过超时间隔,例如加载大量数据的页面
猜你喜欢
  • 1970-01-01
  • 2012-12-14
  • 1970-01-01
  • 1970-01-01
  • 2017-05-14
  • 2018-05-12
  • 1970-01-01
  • 2014-07-18
  • 2013-10-29
相关资源
最近更新 更多