项目之前是直接在index.html中引用了controller.js,其中包含了所有的controller。现引入ocLazyLoad实现按需加载,到指定页面再加载指定js、controller

1、原引用controller.js,首页首次加载时间长,文件打包之后很大

2、引入路由懒加载,直接使用npm或者bower

npm install oclazyload

ocLazyLoad相关文件被下载到node_modules文件夹下。在index.html文件中引用ocLazyLoad.min.js

3、将ocLazyLoad注入到app中

4、在路由配置文件中(app.js)中修改路由配置部分:

原:

.state('index',{
url: '',
templateUrl: 'views/login/login.html',
controller: 'loginCtrl'
})
 
改为:
.state('index',{
url: '',
templateUrl: 'views/login/login.html',
controller: 'loginCtrl',
resolve: {
loadMyCtrl: ['$ocLazyLoad', function($ocLazyLoad){
return $ocLazyLoad.load('views/login/loginCtrl.js')
}]
}
})

5、记录一下碰到的问题,在加入懒加载之后注释掉controller.js的引用文件,单个页面的js可以被获取到,但是提示controller未定义

查了很多,最后找到解决方法:

在配置路由的地方,加上"$controllerProvider"

app.controller = $controllerProvider.register;

这样才能将angularjs的$controllerProvider服务传入该对象中,$controllerProvider对加载进来的controller文件进行依赖关系的注入,就可以实现按需调用controller不会报错controller未定义了

结果就是这样 可以正常使用了

angular 引入ocLazyLoad实现js、controller懒加载的更多相关文章

  1. JS图片懒加载

    简介 当页面图片太多时,加载速度就会很慢.尤其是用2G/3G/4G访问页面,不仅页面慢,而且还会用掉很多流量.图片懒加载的原理就是将页面内所有需要加载的图片全部换成一张默认的图片(一般尺寸很小),只有 ...

  2. js 图片懒加载

    图片懒加载(图片出现在可视区域再加载) 兼容性:兼容目前流行的全部浏览器,包括:兼容到IE6) 使用方法: 引入相应的js文件<script src="js/lazy.js" ...

  3. js图片懒加载(滚动加载)是否生效

    一.什么是懒加载? 对未出现在视野范围内的图片先不进行加载,等到出现在视野范围才去加载. 二.为什么使用懒加载? 懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数. 理论性知识大家都有自 ...

  4. js图片懒加载(滚动加载)判断是否生效

    一.什么是懒加载? 对未出现在视野范围内的图片先不进行加载,等到出现在视野范围才去加载. 二.为什么使用懒加载? 懒加载的主要目的是作为服务器前端的优化,减少请求数或延迟请求数. 理论性知识大家都有自 ...

  5. js学习之原生js实现懒加载

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  6. 【前端优化】js图片懒加载及优化

    一.前言 为啥要对图片使用懒加载?我们首先来聊聊这个问题,对于页面来说架子啊速度影响着最大的就是图片,一张普通的图片可以达到4-5M的大小,而代码压缩也就只有几十KB.当页面图片过多的时候,页面加载速 ...

  7. 原生js实现懒加载并节流

    像淘宝网站等,页面中有着大量图片,一次性全部加载这些图片会使浏览器发送大量请求和造成浪费.采用懒加载技术,即用户浏览到哪儿,就加载该处的图片.这样节省网络资源.提升用户体验.减少服务器压力. 方法1: ...

  8. web性能优化之js图片懒加载

    html <div class="container"> <ul> <li> <div id="first" clas ...

  9. js——图片懒加载

    <img class="js-lazy-image centered" src="./img/dog-running.svg" width="4 ...

随机推荐

  1. mutex,thread

    //#include <stdio.h> //#include <stdlib.h> //#include <unistd.h> #include <wind ...

  2. Atom以及amWiki个人维基安装设置

    amWiki个人维基 amWiki支持.md文件的静态维基系统 安装 参考 安装Atom 下载amWiki解压zip到C:\Users\用户名\.atom\packages 目录下,或在Atom中搜索 ...

  3. laravel composer

    composer config -g repo.packagist composer https://packagist.phpcomposer.com 改安装包的全局镜像网址

  4. /bin, /sbin & /usr/bin, /usr/sbin & /usr/local/bin, /usr/local/sbin & glibc

    操作系统为自身完成启动所需要的 /bin, /sbin 系统基本管理所需要的 /usr/bin, /usr/sbin 第三方的 /usr/local/bin, /usr/local/sbin 核心库 ...

  5. Let'sEncrypt 免费通配符/泛域名SSL证书添加使用教程

    Let'sEncrypt 免费通配符/泛域名SSL证书添加使用教程 通配符证书一般还是比较贵的一般最便宜的通配符证书5.60美元一年,只不过Let'sEncrypt的有效期是3个月,对于一般用户来说基 ...

  6. Oarcle之序列

    序列:是一种数据库对象,用来自动产生一组唯一的序号: 序列:是一种共享式的对象,多个用户可以共同使用序列中的序号. 创建序列 create sequence seq_emp_temp incremen ...

  7. jmeter java requst请求

    https://wangym.iteye.com/blog/731729 http://www.cnblogs.com/yangxia-test/p/4019541.html https://blog ...

  8. laravel中ajax,post传值问题

    //laravel中有CSRF保护 不加的话会出现419错误$.ajax({ url: '/admin/user/'+id, type: "POST", data: {'_toke ...

  9. scrapy的splash 的简单使用

    安装Splash(拉取镜像下来)docker pull scrapinghub/splash安装scrapy-splashpip install scrapy-splash启动容器docker run ...

  10. UITextField只能输入数字NSCharacterSet实现

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementS ...