亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

AngularJS動態(tài)加載模塊和依賴的方法分析

 更新時間:2016年11月08日 09:28:51   作者:前端超人  
這篇文章主要介紹了AngularJS動態(tài)加載模塊和依賴的方法,結合實例形式分析了AngularJS使用ocLazyLoad實現動態(tài)加載的相關操作技巧,需要的朋友可以參考下

本文實例講述了AngularJS動態(tài)加載模塊和依賴的方法。分享給大家供大家參考,具體如下:

前言

由于AngularJS是單頁面應用框架,在正常的情況下,會在訪問頁面的時候將所有的CSS、JavaScript文件都加載進來。文件不多的時候,頁面啟動速度倒不會影響太多。但是一旦文件數太多或者加載的第三方庫比較大的時候,就會影響頁面啟動速度。因此對于應用規(guī)模大、文件數比較多或者加載的第三方庫比較大的時候,采用動態(tài)加載JS或者動態(tài)加載模塊會極大提升頁面的啟動速度。本文將介紹如何利用ocLazyLoad實現動態(tài)加載。

準備

AngularJS動態(tài)加載依賴第三方庫:ocLazyLoad。ocLazyLoad是一個第三方庫,支持AngularJS動態(tài)加載module、service、directive以及靜態(tài)文件。

安裝ocLazyLoad

可通過npm或者bower進行安裝

npm install oclazyload
bower install oclazyload

將ocLazyLoad module 添加到你的應用中

angular.module('myApp',['oc.lazyLoad']);

配置 ocLazyLoad

你可以在 config函數中配置 $ocLazyLoadProvider,配置文件如下

.config(['$ocLazyLoadProvider', function($ocLazyLoadProvider){
  $ocLazyLoadProvider.config({
    debug: true,
    events: true,
    modules: [
      {
        name: 'TestModule',
        files: ['test.js']
      }
    ]
  })
}])

debug: 用來開啟debug模式。布爾值,默認是false。當開啟debug模式時,$ocLazyLoad會打印出所有的錯誤到console控制臺上。
events:當你動態(tài)加載了module的時候,$ocLazyLoad會廣播相應的事件。布爾值,默認為false。
modules:用于定義你需要動態(tài)加載的模塊。定義每個模塊的名字需要唯一。
modules必須要用數組的形式,其中files也必須以數組的形式存在,哪怕只需要加載一個文件

在路由當中加載module

.config(['$routeProvider', function($routeProvider) {
    $routeProvider.otherwise('/index');
    $routeProvider.when('/index', {
      templateUrl: 'index.html',
      controller: 'IndexController',
      resolve: { // resolve 里的屬性如果返回的是 promise對象,那么resolve將會在view加載之前執(zhí)行
        loadMyCtrl: ['$ocLazyLoad', function($ocLazyLoad) {
          // 在這里可以延遲加載任何文件或者剛才預定義的modules
          return $ocLazyLoad.load('TestModule'); //加載剛才定義的TestModule
          /*return $ocLazyLoad.load([  // 如果要加載多個module,需要寫成數組的形式
            'TestModule',
            'MainModule'
            ]);*/
        }]
      }
    })
}])

resolve設置的屬性可以被注入到Controller當中。如果resolve返回的是promise對象的話,那么它們將在控制器加載以及$routeChangeSuccess被觸發(fā)之前執(zhí)行。

$ocLazyLoad就是利用這個原理hack,進行動態(tài)加載。

resolve的值可以是:

* key,the value of key 是會被注入到Controller的依賴的名字;
* factory,即可以是一個service的名字,也可以是一個返回值,它是會被注入到控制器中的函數或可以被resolve的promise對象。

通過這樣的配置,就可以實現了AngularJS動態(tài)加載模塊和依賴。但是ocLazyLoad提供的功能更加豐富,不止動態(tài)加載模塊和依賴,還能動態(tài)加載service,diretive等。更多的功能,可以訪問[ocLazyLoad官網](https://oclazyload.readme.io)

希望本文所述對大家AngularJS程序設計有所幫助。

相關文章

  • Angular X中使用ngrx的方法詳解(附源碼)

    Angular X中使用ngrx的方法詳解(附源碼)

    ngrx是一套利用RxJS的類庫,下面這篇文章主要給大家介紹了關于Angular X中使用ngrx的方法,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-07-07
  • Angular4.x Event (DOM事件和自定義事件詳解)

    Angular4.x Event (DOM事件和自定義事件詳解)

    今天小編就為大家分享一篇Angular4.x Event (DOM事件和自定義事件詳解),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Angular中樣式綁定解決方案

    Angular中樣式綁定解決方案

    這篇文章主要介紹了Angular中樣式綁定解決方案,使用ngClass和ngStyle可以進行樣式的綁定,本文結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • angularjs 緩存的使用詳解

    angularjs 緩存的使用詳解

    這篇文章主要介紹了angularjs 緩存的使用詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • angular.js+node.js實現下載圖片處理詳解

    angular.js+node.js實現下載圖片處理詳解

    這篇文章主要介紹了angular.js+node.js實現下載圖片處理的相關資料,文中介紹的非常詳細,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • angular4實現帶搜索的下拉框

    angular4實現帶搜索的下拉框

    這篇文章主要為大家詳細介紹了angular4實現帶搜索的下拉框,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 詳解Angular中延遲加載的原理與使用

    詳解Angular中延遲加載的原理與使用

    Angular 是一個流行的框架,用于構建動態(tài)和響應式 Web 應用程序,在本文中,我們將討論延遲加載以及它如何與 Angular 中的路由一起工作,感興趣的可以跟隨小編一起學習一下
    2023-06-06
  • 如何用DevUI搭建自己的Angular組件庫

    如何用DevUI搭建自己的Angular組件庫

    DevUI 是一款面向企業(yè)中后臺產品的開源前端解決方案,它倡導沉浸、靈活、至簡的設計價值觀,提倡設計者為真實的需求服務,為多數人的設計,拒絕嘩眾取寵、取悅眼球的設計。如果你正在開發(fā) ToB 的工具類產品,DevUI 將是一個很不錯的選擇!
    2021-05-05
  • AngularJs實現分頁功能不帶省略號的代碼

    AngularJs實現分頁功能不帶省略號的代碼

    這篇文章主要介紹了AngularJs實現分頁功能不帶省略號的代碼的相關資料,非常不錯具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-05-05
  • Angular中sweetalert彈框的基本使用教程

    Angular中sweetalert彈框的基本使用教程

    這篇文章主要給大家介紹了關于Angular中sweetalert彈框的基本使用的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07

最新評論