欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

angularJS+requireJS實現(xiàn)controller及directive的按需加載示例

 更新時間:2017年02月20日 08:21:47   作者:不一是為丕  
本篇文章主要介紹了angularJS+requireJS實現(xiàn)controller及directive的按需加載示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

思路如下

1、借助ui-router里面的resolve屬性來實現(xiàn)預(yù)加載

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

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

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

app.register = {    //注意這里的$controllerProvider是內(nèi)置注冊控制器的屬性,$compileProvider是內(nèi)置的注冊指令的屬性

    controller: $controllerProvider.register,

    directive: $compileProvider.directive

   } 

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

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文件內(nèi))

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

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

//注冊控制器(對應(yīng)的控制器js文件內(nèi))
app.register.controller('MyCtrl1', function ($scope,$css,$rootScope) {
    //控制器里面的內(nèi)容
    
  });

//注冊指令(對應(yīng)的指令js文件內(nèi))

app.register.directive("loading",function (){

    return {
      restrict: "AE",
      replace: true,
      template: "<div class='mask' ng-show='isLoading'><span>loading</span></div>"
      }
    });  

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

最后這只是實現(xiàn)按需加載js文件中的一種思路,以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • angularjs實現(xiàn)多選框分段全選效果實現(xiàn)

    angularjs實現(xiàn)多選框分段全選效果實現(xiàn)

    這篇文章主要為大家介紹了angularjs實現(xiàn)多選框分段全選效果實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 詳解AngularJS的通信機制

    詳解AngularJS的通信機制

    這篇文章主要介紹了AngularJS的通信機制,AngularJS是非常具有人氣的JavaScript庫,需要的朋友可以參考下
    2015-06-06
  • AugularJS從入門到實踐(必看篇)

    AugularJS從入門到實踐(必看篇)

    下面小編就為大家?guī)硪黄狝ugularJS從入門到實踐(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 解決AngualrJS頁面刷新導致異常顯示問題

    解決AngualrJS頁面刷新導致異常顯示問題

    本篇文章主要介紹了解決AngualrJS頁面刷新導致異常顯示問題的方法。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Angular2學習教程之ng中變更檢測問題詳解

    Angular2學習教程之ng中變更檢測問題詳解

    這篇文章主要給大家介紹了Angular2學習教程之ng中變更檢測問題的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • AngularJS入門教程之XHR和依賴注入詳解

    AngularJS入門教程之XHR和依賴注入詳解

    本文主要介紹AngularJS XHR和依賴注入,這里整理了詳細資料和示例代碼,有興趣的小伙伴可以參考下
    2016-08-08
  • @angular前端項目代碼優(yōu)化之構(gòu)建Api Tree的方法

    @angular前端項目代碼優(yōu)化之構(gòu)建Api Tree的方法

    這篇文章主要介紹了@angular前端項目代碼優(yōu)化之構(gòu)建Api Tree的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • AngularJs上傳前預(yù)覽圖片的實例代碼

    AngularJs上傳前預(yù)覽圖片的實例代碼

    使用AngularJs進行開發(fā),在項目中,經(jīng)常會遇到上傳圖片后,需在一旁預(yù)覽圖片內(nèi)容,怎么實現(xiàn)這樣的功能呢?今天小編給大家分享AugularJs上傳前預(yù)覽圖片的實現(xiàn)代碼,需要的朋友參考下吧
    2017-01-01
  • Angular 與 Component store實踐示例

    Angular 與 Component store實踐示例

    這篇文章主要為大家介紹了Angular 與 Component store實踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • angularjs項目的頁面跳轉(zhuǎn)如何實現(xiàn)(5種方法)

    angularjs項目的頁面跳轉(zhuǎn)如何實現(xiàn)(5種方法)

    本篇文章主要介紹了詳解angularjs項目的頁面跳轉(zhuǎn)如何實現(xiàn) ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論