七月份的时候有写过一篇OcLazyLoad文章,当时只是初略了解了一下,是为了解决当前项目加载模块过多的问题,但是最后发现项目中模块间耦合性过于复杂,然后项目给出的时间也不是很多,后面就放弃了,这次新项目中使用了。

加载js+css:

angular.module('myRouters', ['ui.router', 'oc.lazyLoad']).config(['$stateProvider', '$urlRouterProvider', '$locationProvider','$ocLazyLoadProvider',function ($stateProvider, $urlRouterProvider, $locationProvider,$ocLazyLoadProvider) {$stateProvider.state('panoramic', {url: '/panoramic',views: {'body': {templateUrl: '../components/panoramic/panoramic.html',},},resolve: {loadMyCtrl: ['$ocLazyLoad', function ($ocLazyLoad) {return $ocLazyLoad.load(['css/components/panoramic/panoramic.css','/controllers_panoramic.js']);}]}})}]);

这种写法不支持按需加载指令,指令需要注入模块,模块:

通过OcLazyLoad申明一个模块名,跟引用js

$ocLazyLoadProvider.config({modules: [{name: 'tm.tags',files: ['framework/angular/tm.tags.js']}]});

完整代码:

angular.module('myRouters', ['ui.router', 'oc.lazyLoad']).config(['$stateProvider', '$urlRouterProvider', '$locationProvider','$ocLazyLoadProvider',function ($stateProvider, $urlRouterProvider, $locationProvider,$ocLazyLoadProvider) {$ocLazyLoadProvider.config({modules: [{name: 'tm.tags',files: ['framework/angular/tm.tags.js']}]});$stateProvider.state('panoramic', {url: '/panoramic',views: {'body': {templateUrl: '../components/panoramic/panoramic.html',},},resolve: {loadMyCtrl: ['$ocLazyLoad', function ($ocLazyLoad) {return $ocLazyLoad.load(['tm.tags','css/components/panoramic/panoramic.css',js + '/controllers.js',js + '/controllers_panoramic.js']);}]}})}]);

这个就解决了Angular中:指令js、控制器js、样式、第三方库js的按需加载;

但是在实际开发中这样肯定是不满足需求,因为js跟css还是会有缓存

可以通过时间轴来移除这个缓存,下一篇通过gulp来实现

angular1x初始与架构演进(三)Ui-Router+OcLazyLoad加载模块相关推荐

  1. angular1x初始与架构演进(二)

    很荣幸第二个项目全权是由我负责的,推进了公司前端技术架构: CDN:js全部cdn通过时间轴来进行区域覆盖更新 OcLazyLoad:Angular按需加载模块js,Angular也可以通过requi ...

  2. angular1x初始与架构演进(一)

    angular的亮点:双向数据绑定,指令,路由,服务,过滤器,依赖注入 angular的缺点:相对应学习的东西也过于复杂,不适合seo,虽然可以通过搭建静态服务器来解决这个问题 要学会angular最 ...

  3. angular1x初始与架构演进(四)gulp配置+OcLazyLoad中资源MD5时间轴更新

    个人不是很喜欢非覆盖式更新这个模式:在一个版本中资源会出现不同的时间轴版本,而且这些版本会一直存在,导致项目越来越大,至于管理这个功能其实git就有提供,webstrom也有提供历史记录,所以这种模式 ...

  4. element ui 树形-懒加载-表格-多选 勾选问题

    element ui树形表格如下: 它的数据格式为:使用children字段来存放子级数据 tableData: [{id: 1,date: "2016-05-02",name: ...

  5. iOS开发UI篇—懒加载

    iOS开发UI篇-懒加载 1.懒加载基本 懒加载--也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了, ...

  6. awt jtable 多线程加载图片_Java项目实战之天天酷跑(三):缓冲加载游戏界面

    前文,我们完成了开始游戏界面的搭建.本文将实现缓冲加载界面的搭建.并搭建与前面俩界面间的桥梁.实现输入正确用户名密码后,进入开始游戏界面,点击开始游戏按钮后,进入缓冲加载界面的功能. 界面示意图: 具 ...

  7. Qt解决UI界面一次性加载数据过多卡顿的问题

    关于Qt如何解决UI界面一次性加载太多数据而卡顿的问题 思路分析: ​ 以QTableWidget电子词典为例,每次模糊查询单词时都会产生几十种,几千甚至上万种不同的结果: ​ 例如我们输入a,对a进 ...

  8. 学习Mac开发第三弹 通过WebView加载网页

    学习Mac开发第三弹 通过WebView加载网页 添加WebKit.framework  关联Delegate 在新建工程的ViewController里拖放一个WebView,并用Autolayou ...

  9. [Aaronyang] 写给自己的WPF4.5 笔记6[三巴掌-大数据加载与WPF4.5 验证体系详解 2/3]

    我要做回自己--Aaronyang的博客(www.ayjs.net) 博客摘要: Virtualizing虚拟化DEMO 和 大数据加载的思路及相关知识 WPF数据提供者的使用ObjectDataPr ...

最新文章

  1. PowerShell攻防进阶篇:nishang工具用法详解
  2. LINQ字符拼接的AND和OR操作
  3. me shy是什么歌 抖音make_抖音星河滚烫你是人间的理想下一句是什么歌 星河歌词完整版...
  4. IIS添加直接下载的文件类型
  5. php+apache 和 php+nginx的区别
  6. spring boot之security
  7. 运行FFT时出现未定义与‘matlab.ui.Figure’类型的输入参数相对应的运算符
  8. 某程序员的薪水变化数据
  9. 网站跨站点脚本,Sql注入等攻击的处理
  10. 【LeetCode 231】Power of Two
  11. 使用STAR构建参考基因组并比对
  12. word打印高清图片
  13. Bugku CTF 每日一题 想蹭网先解开密码
  14. html5的指南针app,HTML5 App实战(五):指南针
  15. Google adsense帐户被封到解封全过程
  16. Java *2.22(财务应用:货币单位)改写程序清单2-10,解决将double转int可能会造成精度损失问题。以整数值作为输入,其最后两位代表的是美分币值。例如:1156就表示11美元56美分。
  17. 下肢静脉曲张的病因具体有哪些?
  18. #20 ifconfig、route、netstat、ip、ss命令详解与修改主机名与网卡配置文件
  19. css表格文字不换行怎么设置?
  20. 手动编译源代码安装GR GSM

热门文章

  1. python北京时间代码_python代码定时同步本机的北京时间详解
  2. mysql创建用户并授登录权限_mysql创建用户并授予权限
  3. oracle离线文档查dbms_小白小记-logminer工具分析离线归档日志
  4. matlab using mtimes,同版本matlab、同一.m文件,为何一个顺利执行、另一个出错?
  5. windows下python使用fllow扩展持续读取文件的bug
  6. 通过jquery获取td下的input标签的值,并且改变onclick的参数值
  7. 【高级Java架构师系统学习】java如何开发安卓软件
  8. 基于Pytorch再次解析AlexNet现代卷积神经网络
  9. 【深度学习入门到精通系列】进化策略 (Evolution Strategy)
  10. SharedPreferences的使用