博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AngularJS ocLazyLoad按需加载控制器/js文件的延迟加载(一)
阅读量:4288 次
发布时间:2019-05-27

本文共 2572 字,大约阅读时间需要 8 分钟。

一、ocLazyLoad说明

1.ocLazyLoad是AngularJS的第三方库,可以实现模块、控制器及其他依赖的动态加载/按需加载

2.$ocLazyLoad.load()支持多个文件,可以自定义指定文件类型,可以自定义指定是否缓存在客户端

3.存在问题,$ocLazyLoad.load(),返回动态类型$$state,对于js文件不存在或加载失败还没有找到相关处理的api

二、相关链接:

Git源代码地址:

官方网址:

官方Api文档:

三、实例1,在控制器中动态加载模块

1.引用

Lazy load测试

2.js

angular.module('myApp', ['oc.lazyLoad']).controller('TestController', function ($scope, $ocLazyLoad, $compile) {    //动态加载模块    $ocLazyLoad.load('../scripts/myjs/module1.js').then(function () {        var el, elToAppend;        elToAppend = $compile('
')($scope); el = angular.element('#example'); el.append(elToAppend); console.log('加载成功'); }, function (e) { console.log('加载失败'); console.error(e); });});
四、实例2,在控制器中动态加载其他依赖

1.html

模板内容
2.js

//动态加载依赖文件var app = angular.module('myApp', ['ui.router', 'oc.lazyLoad']);app.config(function ($stateProvider, $urlRouterProvider) {    $stateProvider.state('index', {        url: '',        templateProvider: function () {            return '

这是首页

'; } });});app.controller('myCtrl', function ($scope, $ocLazyLoad) { //在controller中动态加载依赖 $ocLazyLoad.load([ "../Content/bootstrap.min.css", { files: ["../Scripts/jquery-1.10.2.min.js"], cache: true } ]);});
五、实例3,全局配置+路由处理

1.模板同上

2.js

var app = angular.module('myApp', ['oc.lazyLoad', 'ui.router']);//配置路由app.config(function ($stateProvider, $urlRouterProvider, $ocLazyLoadProvider) {    $stateProvider.state('index', {        url: '',        //templateUrl: '/template/home.html',        templateProvider: function () {            return '

这是首页

'; }, resolve: { des: function ($ocLazyLoad) { //var ctrl = $ocLazyLoad.load('/scripts/myjs/home.js'); var ctrl = $ocLazyLoad.load([ { files: '/scripts/myjs/none.js', cache: true //指定是否启用缓存 } ]); console.info(ctrl); //此处可以对加载失败的js文件处理 //console.info(typeof ctrl.$$state); // console.info(ctrl.$$state); //$$state 是动态类型,没法直接获取属性和值 if (ctrl.$$state.status == 2) return undefined; return ctrl; } } }); //全局配置 $ocLazyLoadProvider.config({ debug: true, //知否启用调试模式 events:true //事件绑定是否启用 });});
更多:

转载地址:http://vcogi.baihongyu.com/

你可能感兴趣的文章
Redis 中如何实现的消息队列?实现的方式有几种?
查看>>
java基础知识---IO常用基础操作(二)
查看>>
智慧社区GIS系统开发详细设计
查看>>
智慧园区导航可视化分析平台技术方案
查看>>
智慧停车场综合解决方案
查看>>
疫情防控三维GIS时空分析系统设计
查看>>
python实现判断某天是否是节假日
查看>>
python根据日期计算昨天、明天日期
查看>>
pandas填充缺失值
查看>>
No matching distribution found for docx(配置cmd控制台代理)
查看>>
pycharm 无法安装模块 nothing to show
查看>>
ModuleNotFoundError: No module named 'exceptions'
查看>>
pandas corr()函数
查看>>
香农熵概念理解
查看>>
pycharm调试步骤(详细)
查看>>
交叉验证
查看>>
matplotlib绘制横向柱状图
查看>>
python函数 range()和arange()
查看>>
linux容器安装cmake
查看>>
win10安装pyhive包
查看>>