A lazyload service for angular projects, only load-on-demand, support seajs/requirejs/custom.
下载 (or 压缩版) | 使用指南 | 基本原理 | TODO/贡献代码 | 示例使用说明
(1) 安装 - 通过Bower安装:
bower install angular-lazyload- 直接下载: Download (or Minified)
(2) 在你的
index.html中引入
angular-lazyload。 ``` <!-- 实际项目中用bower安装到本地 -->
<!-- Step1: include js --> ```
(3) 在你的启动文件里面, 手动启动bootstrap。
//Step2: bootstrap youself seajs.use(['app'], function(app){ angular.bootstrap(document, ['app']); });
(3) 添加
angular-lazyload为你的主模块的依赖中。
//Step3: add 'angular-lazyload' to your main module's list of dependencies var app = angular.module('app', ['angular-lazyload', 'ngRoute']);
(4) 在
app.run里进行初始化。
app.run(['$lazyload', function($lazyload){ //Step5: init lazyload & hold refs $lazyload.init(app); app.register = $lazyload.register; }]);
(5) 路由映射, 添加
controllerUrl
//Step4: add `controllerUrl` to your route item config $routeProvider .when('/test/a', { controller: 'testACtrl', controllerUrl: 'modules/module1/testACtrl.js', templateUrl: 'modules/module1/testA.tpl.html' }) }
(6) 在你的模块里进行注册controller。
//Step6: use `app.register` to register controller/service/directive/filter app.register.controller('testACtrl', ['$scope', function($scope){ ... }]);
route的
resolve做hack点
config期保存
register的引用
$routeChangeStart事件, 动态添加一个
resolve
resolve里面通过seajs去动态加载模块,并动态注册