国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

angularJS+requireJS實現controller及directive的按需加載示例

2019-11-19 17:30:26
字體:
來源:轉載
供稿:網友

最近因為項目的比較大,需要加載的js文件較多,為了提高首屏頁面的加載速度,需要對js文件進行按需加載,然后網上參考了一些資料,自己也深入研究一番之后,實現了按需加載控制器js文件及指令js文件的效果;

思路如下

1、借助ui-router里面的resolve屬性來實現預加載

2、需要借助$controllerProvider動態去注冊控制器,$compileProvider動態去注冊指令

3、需要借助$q來幫助我們實現異步加載,具體步驟如下所示;

1、在我們定義的app(在定義app.config()的js文件內)模塊上掛載注冊控制器和指令的屬性,如下所示 

app.register = {    //注意這里的$controllerProvider是內置注冊控制器的屬性,$compileProvider是內置的注冊指令的屬性    controller: $controllerProvider.register,    directive: $compileProvider.directive   } 

2、借助$q定義一個異步加載js文件的方法(在定義路由的js文件內)

app.loadMyJs = function(js){        return function($rootScope, $q){          var deffer = $q.defer(),            deps=[];          angular.isArray(js) ? (deps = js) : deps.push(js);          require(deps,function(){            $rootScope.$apply(function(){              deffer.resolve();            });          });          return deffer.promise;        };      }

3、借助路由里面的resolve屬性,進行配置需要加載的控制器文件及指令文件(在定義路由的js文件內)

.state('view1',{      url: '/view1',      templateUrl: 'temp/partial1.html',      controller: 'MyCtrl1',      resolve:{          //需要動態加載的控制器及指令js文件,其它js文件以此類推        deps:app.loadMyJs(['./controllers/my-ctrl-1','./directives/loading'])      }    })

4、通過第一步先掛載在app上的屬性來進行動態注冊控制器or指令

//注冊控制器(對應的控制器js文件內)app.register.controller('MyCtrl1', function ($scope,$css,$rootScope) {    //控制器里面的內容      });//注冊指令(對應的指令js文件內)app.register.directive("loading",function (){    return {      restrict: "AE",      replace: true,      template: "<div class='mask' ng-show='isLoading'><span>loading</span></div>"      }    });  

如果有服務or過濾器需要按需加載也是類似的方法,另外如果是公共的服務,指令or過濾器等不需要進行按需加載的文件就可以使用普通的angular.module()的方式來定義即可;

最后這只是實現按需加載js文件中的一種思路,以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 封开县| 岳阳市| 伊吾县| 邵阳市| 睢宁县| 萝北县| 浮梁县| 宜昌市| 台东县| 辽中县| 崇阳县| 西畴县| 和田市| 丰原市| 于田县| 保山市| 秦安县| 奇台县| 万荣县| 乐亭县| 镇巴县| 尼木县| 兖州市| 观塘区| 龙陵县| 清水河县| 迭部县| 龙海市| 黄陵县| 孝感市| 佛坪县| 松桃| 基隆市| 恭城| 凤庆县| 温州市| 岳西县| 江门市| 波密县| 嘉鱼县| 马山县|