3通りの方法でカスタムサービスをangularjs

angularjs三($プロバイダ、$工場、$サービス)サービスをカスタマイズするにすることができ、以下の実現の異なる形式は次のとおりです。

 

//モジュールの定義、モジュールは、注入の$提供
VAR = starterAppのangular.module( 'starter.controllers'、[]、関数($){提供

  カスタムサービスプロバイダの使用提供://第一の実施形態を
  $のprovide.providerを( 'getUserInfoService'、関数(){

      =この$のGET関数(){

        VARユーザー情報= [{
           'ユーザー名': '張0'、
           'userNick': '花0'、
           '年齢':25
          }、{
           'ユーザー名': 'ジョー・スミス1'、
           'userNick': '花1'、
           '年齢':26である
          }];

        ユーザー情報を返す;

      }

  });

  $のprovide.factory( ''、関数(){});


  $ provide.service( ''、関数() {});


});

($モジュールのconfig注入方法を提供する)//第二の方法
starterApp.configは([「$提供」、関数($を提供){

  //(カスタム・サービス・プロバイダの使用を提供し返すオブジェクト、文字列、サービス、および方法を得る$によって返されなければならない)
  の$ provide.provider( 'getUserAddressService'、関数(){

      VARの_userAddress = '';

      VAR-SERVICE = {};

      = $ GETこの関数(){

         service.setAddress =関数(userAddress) {
            _userAddress = userAddress;
         }

         service.getAddress =機能(){
          _userAddressを返す;
         }

         リターン・サービス;
      }

  });

  //カスタムサービス工場(リターン・オブジェクト、サービス、文字列)の使用を提供
   $のprovide.factory(「serviceName1を'[' $のhttp」、関数($ HTTP){
       VAR-SERVICE = {}; //

       // service.getName =関数(){
       //リターン'ジョン・ドウ';
       //}

       復帰サービス; //
       //
       リターン"ビッグああさらさら";
   }]);


   //使用サービス(リターン・オブジェクト、サービス)をカスタマイズするためのサービス提供
   の$ provide.service( 'serviceName2'、[ '$ HTTP'、関数($ HTTP){

       //リターン{
       // '名前': 'AA'を
       //};

       //このメソッドの定義は、直接的であってもよい
       this.getName =関数(){
          戻り'ジョン・ドウ';
       }
       
   }])

 
}])。

 

//第三の方法(モジュールプロバイダ、サービス工場第三の方法を推奨)
starterApp.provider(「serviceName3」、関数(){

   この。$ GET =関数(){

    モジュールによって直接定義されたリターン「プロバイダ方法サービス';
   }
});

starterApp.factory(' serviceName4 '関数(){

    リターン'ファクトリメソッドにおけるサービスモジュールによって直接定義されている';
});

starterApp.service(' serviceName5 '関数(){

    リターン{
       'メッセージ「:」直接サービスモジュールのサービスメソッドの定義から'
    }
 
})。

 

ます。https://www.cnblogs.com/zijuan/p/5038189.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_34075268/article/details/93689834