本文介绍了动态UI-路由器ocLazyLoad使用决心多个模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
解决见下文!
从这个问题的工作/解决方案Stackoverflow问题.....
我编辑了原来的问题我张贴在这里,因为它不再是值得一读。
我的问题是我无法找到的文档:
- 使用动态的角度-UI-路由器;
- 这使得利用ocLazyLoad的;
- 假如嵌套视图主控制器不需要知道什么;
- 它有利于建立 REAL WORLD包括模块,其中许多只在一个视图中同时要求,并再次无数的大型角应用的追求,往往无主这种观点的控制器从未需要知道有关这些嵌套任何意见或他们是如何工作的;
- 和! 作为奖励,请允许我加入一些基本状态被许多国家这些模块,所以我永远不会需要重新加载它们(这并不适用于服务)。
作为例子:的
如果我做了一个网页,名为MyDashboard,可能包含的东西,MyDashboard会包含典型的信息。
但如果我想表明,网页上的图形,我不想 MyDashboard控制器的,以了解这些图表?
如果我有一个待办事项清单,我在我的应用程序使用,不想 MyDashboard控制器的,以了解这些待办事项什么?
有没有一种方法,我可以添加依赖为嵌套视图MyDashboard控制器的不需要知道他们是如何工作,的而在同时拥有动态?的
有没有一种方法我可以,同时创造的 ---动态--- 状态的看法,只是取代我需要对这一观点的依赖,往往W / O控制器永远需要知道什么他们?
我想下面的是创造一个大型的最佳解决方案 REAL WORLD 的,不可知的,棱角分明的应用程序,具有依赖性装上的需要 - 具备的基础。
我精练ocombe的github上对这样的解决方案。你不会找到它。
我提供以下龙科全自动的解决方案给社会。的这片,它切成小方块,它剥离。的我希望它可以帮助你。
后脚本:这是不是你父亲的世界你好傻的例子的
解决方案
的文档中,你不会找到这样的:
定义(['应用'],功能(应用程序){
使用严格的;app.run(函数($ Q $ rootScope,$状态,$窗口,MenuSvc){
//典型呼叫我厂,当然并不必须是JSON
MenuSvc.all()。成功(功能(州){
angular.forEach(州,函数(州){
尝试{
//这是神奇的出现,就这么简单,但这么难
//找到的文档。 :(
VAR的结果= [];
angular.forEach(state.dependencies,功能(依赖){
result.push({
名:dependency.module,
文件:dependency.files,
//这意味着加载为了与放大器的依赖;不中并行
//尤其重要,当你加载CSS文件动态
意甲:真实,
//缓存在内存中,请
缓存:真
})
});
// state.resolve是状态的函数调用($ stateProvider)
// [state.resolve]在我的JSON对象的国家的财产的决心
state.resolve [state.resolve] =功能($ ocLazyLoad){
返回$ ocLazyLoad.load(结果)
};
}赶上(E){
的console.log('错误:'+ e.message);
}
// $ stateProviderRef是我的app.config,例如宣布一个全局变量:
// $ urlRouterProviderRef = $ urlRouterProvider;
// $ stateProviderRef = $ stateProvider;
//记住:供应商必须在配置实例化
$ stateProviderRef.state(state.name,状态);
})
//你必须在一个app.run动态UI路由器指定默认状态。必须!!
//但这并不必须是硬$ C $光盘。您可以在一个属性做一个if语句
//调用,例如启动的上方和下方传递州名作为变量
//如。这是在上述指定每个$ state.go(启动)
$ state.go('app.MyDashboard');
});
})});
我的JSON格式:
It works !!!!!!!!!!!
这篇关于动态UI-路由器ocLazyLoad使用决心多个模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!