场景:
我有一些角度模块,比如:
angular.module('app', ['app.core', 'app.views']); // not lazy load
app.views下的每个模块都使用RouterUtil注册自己的路由,如下所示:
$stateProvider.state('state name', {/* some configs here */});
此RouterUtil还具有访问所有已注册状态的方法(用于创建动态菜单)。
我使用ocLazyLoad,只是为了加载一个外部模块。当页面加载时,ocLazyLoad将向其他带有角模块的js执行请求,然后将该模块添加到实际环境中。
当我转到这个外部模块的一个页面并尝试刷新页面时,会发生问题:
正在发生的事情:
我能做ui-路由器等待ocLazyLoad请求,然后检查这是否一个注册的网址?
发布于 2015-06-17 21:12:25
您希望使用deferIntercept(),以便延迟ui-路由器监视URL。
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
https://stackoverflow.com/questions/30765685
复制相似问题