在routeprovider开始执行解析列表之前执行函数

时间:2015-01-21 13:20:20

标签: angularjs angularjs-routing

我正在开发一个与服务器缓存一起使用的Angular项目。 我的计划是:

  1. 创建一个服务(CacheService),询问服务器有关缓存状态的信息,并将此信息存储到localStorage中。
  2. 因此,在routeProvider解析对象中调用的其他服务可以向CacheService询问其缓存状态,如果它已过时,则调用服务器以获取新数据,或者,如果缓存未更改,则使用其本地缓存数据
  3. 所以问题是:¿有没有办法在执行解析器之前执行异步函数?或者¿解析器有没有办法在执行之前等待其他解析器?

    提前致谢

1 个答案:

答案 0 :(得分:0)

$route服务提供了$ routeChangeStart事件,您可以使用它来完成此任务。

  

路线变更前广播。此时路线服务   开始解决路由更改所需的所有依赖项   发生。通常,这也涉及获取视图模板   作为解析路由属性中定义的任何依赖项。一切都结束了   依赖性被解决$ routeChangeSuccess被触发。

     

路由更改(以及触发它的$ location更改)可以是   通过调用事件的preventDefault方法来阻止。看到   $ rootScope.Scope获取有关事件对象的更多详细信息。

您应该可以使用此事件跳转到路径流,执行缓存检查,然后决定下一步做什么(使用缓存,中止路由等)

相关问题