首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角度用户界面路由器与ocLazyLoad

角度用户界面路由器与ocLazyLoad
EN

Stack Overflow用户
提问于 2015-06-10 19:34:55
回答 1查看 440关注 0票数 0

场景:

我有一些角度模块,比如:

angular.module('app', ['app.core', 'app.views']); // not lazy load

app.views下的每个模块都使用RouterUtil注册自己的路由,如下所示:

$stateProvider.state('state name', {/* some configs here */});

此RouterUtil还具有访问所有已注册状态的方法(用于创建动态菜单)。

我使用ocLazyLoad,只是为了加载一个外部模块。当页面加载时,ocLazyLoad将向其他带有角模块的js执行请求,然后将该模块添加到实际环境中。

当我转到这个外部模块的一个页面并尝试刷新页面时,会发生问题:

正在发生的事情:

  • 角启动和注册一些$states
  • ocLazyLoad启动对外部模块的请求
  • ui路由尝试解析实际的URL,并意识到此URL没有状态,并将用户重定向到默认页面(否则)。
  • ocLazyLoad完成请求,并将所有新模块添加到角环境中。此时,我们有一个带有请求URL的状态(刷新前相同)

我能做ui-路由器等待ocLazyLoad请求,然后检查这是否一个注册的网址?

EN

回答 1

Stack Overflow用户

发布于 2015-06-17 21:12:25

您希望使用deferIntercept(),以便延迟ui-路由器监视URL。

代码语言:javascript
复制
app.config(function($urlRouterProvider) {
  urlRouterProvider.deferIntercept(); 
});

... ocLazyLoad stuff

app.run(function($urlRouter) { 
  ocLazyLoadPromise.then(function() { urlRouter.listen(); }); 
});

http://angular-ui.github.io/ui-router/site/#/api/ui.router.router.$urlRouterProvider

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30765685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档