最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

AngularJs Managing Service Dependencies詳解

 更新時間:2016年09月02日 15:27:08   作者:Lcllao  
本站主要介紹AngularJs Managing Service Dependencies的知識資料,這里整理相關(guān)知識,及簡單示例代碼,有興趣的小伙伴可以參考下

  angular允許service將其他service聲明為依賴,使用在自身實例化時使用的構(gòu)造函數(shù)中。

  為了聲明依賴,我們需要在工廠方法聲明中指定它們,并且在工廠方法中通過$inject屬性(字符串標(biāo)識數(shù)組)或者使用array notation。

  通常$inject屬性聲明可以被丟棄(即http://m.fzitv.net/article/91815.htm中提到的隱式依賴注入,但這個是實驗屬性,在而且在壓縮混淆后會失效,慎用!)。

使用array notation

function myModuleCfgFn ($provide) {
  $provide.factory(‘myService',[‘dep1','dep2',function(dep1,dep2){}]);
}

使用$inject屬性   

function myModuleCfgFn($provide) {
   var myServiceFactory = function(dep1, dep2) {};
   myServiceFactory.$inject = ['dep1', 'dep2'];
   $provide.factory('myService', myServiceFactory);
 }

使用隱式DI(不兼容壓縮混淆的代碼)

function myModuleCfgFn($provide) {
  $provide.factory('myService', function(dep1, dep2) {});
}

       下面有一個例子,里面有兩個service,它們之間存在依賴關(guān)系,以及其他一些angular提供的service。

 /**
 * batchLog service 允許消息在內(nèi)存中形成隊列,50秒flush一次。
 *
 * @param {*} message Message to be logged.
 */
 function batchLogModule($provide){
   $provide.factory('batchLog', ['$timeout', '$log', function($timeout, $log) {
     var messageQueue = [];
     function log() {
       if (messageQueue.length) {
         $log('batchLog messages: ', messageQueue);
         messageQueue = [];
       }
       $timeout(log, 50000);
     }
     log(); 
     return function(message) {
       messageQueue.push(message);
     }
   }]);
   /**
   * routeTemplateMonitor監(jiān)控每一個route的變化,每個比阿奴啊都會通過batchLog service記錄下來
   */
   $provide.factory('routeTemplateMonitor',
     ['$route', 'batchLog', '$rootScope',
     function($route, batchLog, $rootScope) {
       $rootScope.$on('$routeChangeSuccess', function() {
         batchLog($route.current ? $route.current.template : null);
       });
   }]);
 }
 // 獲得主service,運(yùn)行應(yīng)用(監(jiān)聽事件)
  angular.injector([batchLogModule]).get('routeTemplateMonitor');

例子中需要注意的事項:

  1. batchLog service依賴angular內(nèi)置的$timeout(http://docs.angularjs.org/api/ng.$timeout)與$log services(http://docs.angularjs.org/api/ng.$log),實現(xiàn)通過console.log批量log消息。
  2. routeTemplateMonitor service依賴內(nèi)置的$route(http://docs.angularjs.org/api/ng.$route) service與我們自定義的batchLog service。
  3. 我們兩個service都使用工廠方法簽名以及array notation來注釋inject,聲明它們的依賴。array中的字符串標(biāo)識的順序與工廠方法簽名(參數(shù))中的順序必須一致,這十分重要。除非在工廠方法參數(shù)中使用隱式依賴聲明,否則,injector將根據(jù)array中字符串的順序決定inject哪一個服務(wù)。

以上就是關(guān)于AngularJs Managing Service Dependencies 資料的整理,后續(xù)繼續(xù)添加相關(guān)資料,謝謝大家對本站的支持!

相關(guān)文章

  • AngularJS 2.0新特性有哪些

    AngularJS 2.0新特性有哪些

    本文介紹了其在AtScript、改善依賴入駐、Annotations、路由方案等方面的改變。雖然不知道打破原有是否是件好事,不過由于不向后兼容,我們需要為遷移做好計劃
    2016-02-02
  • 對angularJs中自定義指令replace的屬性詳解

    對angularJs中自定義指令replace的屬性詳解

    今天小編就為大家分享一篇對angularJs中自定義指令replace的屬性詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 簡述AngularJS相關(guān)的一些編程思想

    簡述AngularJS相關(guān)的一些編程思想

    這篇文章主要介紹了AngularJS相關(guān)的一些編程思想,AngularJS是一款熱門的JavaScript庫,推薦!需要的朋友可以參考下
    2015-06-06
  • 淺談angular.js中實現(xiàn)雙向綁定的方法$watch $digest $apply

    淺談angular.js中實現(xiàn)雙向綁定的方法$watch $digest $apply

    Angular用戶都想知道數(shù)據(jù)綁定是怎么實現(xiàn)的。你可能會看到各種各樣的詞匯:$watch,$apply,$digest它們是如何工作的呢?這里我想回答這些問題,其實它們在官方的文檔里都已經(jīng)回答了,但是我還是想把它們結(jié)合在一起來講
    2015-10-10
  • AngularJS實現(xiàn)動態(tài)編譯添加到dom中的方法

    AngularJS實現(xiàn)動態(tài)編譯添加到dom中的方法

    這篇文章主要介紹了AngularJS實現(xiàn)動態(tài)編譯添加到dom中的方法,結(jié)合實例形式分析了AngularJS動態(tài)編輯構(gòu)建模板的相關(guān)操作技巧,需要的朋友可以參考下
    2016-11-11
  • Angular 2父子組件數(shù)據(jù)傳遞之@ViewChild獲取子組件詳解

    Angular 2父子組件數(shù)據(jù)傳遞之@ViewChild獲取子組件詳解

    這篇文章主要給大家介紹了關(guān)于Angular 2父子組件數(shù)據(jù)傳遞之@ViewChild獲取子組件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-07-07
  • AngularJS表格添加序號的方法

    AngularJS表格添加序號的方法

    這篇文章主要介紹了AngularJS表格添加序號的方法,涉及AngularJS表格的遍歷及序號添加實現(xiàn)技巧,需要的朋友可以參考下
    2017-03-03
  • 基于?angular?material?theming?機(jī)制修改?mat-toolbar?的背景色(示例詳解)

    基于?angular?material?theming?機(jī)制修改?mat-toolbar?的背景色(示例詳解

    最近在學(xué)習(xí)?angular,記錄一下昨天的進(jìn)展,解決的問題是通過?theme?的配置修改?mat-toolbar?的背景色,避免對色彩的硬編碼,這篇文章主要介紹了基于?angular?material?theming?機(jī)制修改?mat-toolbar?的背景色,需要的朋友可以參考下
    2022-10-10
  • Angular.JS中的this指向詳解

    Angular.JS中的this指向詳解

    這篇文章主要給大家介紹了關(guān)于Angular.JS中this指向的相關(guān)資料,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • AngularJS表單和輸入驗證實例

    AngularJS表單和輸入驗證實例

    本篇文章詳細(xì)的介紹了AngularJS表單和輸入驗證實例, AngularJS表單可以提供驗證功能。有需要的可以了解一下。
    2016-11-11

最新評論

威宁| 西华县| 涟源市| 锡林郭勒盟| 邻水| 横峰县| 错那县| 南通市| 平潭县| 湖北省| 嵊泗县| 彰武县| 紫云| 清水县| 康马县| 丹凤县| 岳池县| 南安市| 定南县| 江源县| 泾源县| 连江县| 吴旗县| 沈阳市| 高唐县| 习水县| 乌拉特前旗| 屏南县| 达孜县| 商城县| 迭部县| 柘城县| 韩城市| 武清区| 承德市| 中牟县| 咸宁市| 儋州市| 宜兰市| 西乌| 望奎县|