2016-08-23 10 views
0

アプリケーションのすべてのRESTエンドポイントをAngular JS内の1か所に保存して管理するのがベストプラクティスですか?Angular JSのRESTエンドポイントを管理しますか?

+0

ストアのjsファイル内のすべてのURLがvar' 'によって定義され、そのファイルが含まれるとして、あなたのコントローラでこのConnectionServiceを使用することができますAPIエンドポイントが必要なすべてのファイルに直接変数を使用します。 __OR__あなたはangularjsの定数サービスを使用することができます –

答えて

0

this great documentに従って、アプリケーションの外部に定数として保存することができます。

その後、

app.js

angular.module('yourmodule', []) 
    .constant('__env', __env) 
あなたのメインモジュールの定数として割り当てる

env.js

(function (window) { 
    window.__env = window.__env || {}; 

    // Login page address 
    window.__env.loginUrl = 'http://website/login'; 

}(this)); 

などの設定を保存することができます

その後、あなたはあなたのサービスにで注入することができ

loginData.$inject = ['$http', '__env'];

このような構成は、私にとって最高の作品、アプリケーションを再構築することなく、環境に応じて、管理や変更が容易です。 constantを割り当てるだけでは、このような利点はありません。

1

でAngularJS

app.value('config', { 
    "baseUrl": "http://www.some.url" 
}); 

config.baseUrl + "/fetchAll.json" 

とのアクセスには、依存関係configを注入することを忘れないでください。

よろしくお願いいたします。

+0

ありがとうございます。例えば、私はREST URL/rest/person/{person-id} /アドレスを持つために、パラメータ値などのプレースホルダ値を置き換えますか?この場合、コードからperson-idを入力し、プレースホルダーの値を置き換えます。 – megan

+0

'config.baseUrl +"/rest/person/"+ person-id +" /アドレス "' –

0

すべてのREST定義に$resourceを使用してください。私が使用して快適だ

1

A一般的なもの:

angular.module('myApp').factory('ConnectionService', function ($http, $log) { 
    var connectionurl = 'http://localhost:8000/Services.svc/'; 
    return { 
     connectionurl: connectionurl, 

     getData:function(successCallBack){ 
      $http({ 
        method: 'GET', 
     /********HERE COMES YOUR REST WebGet or WebInvoke URI************/ 
        url: connectionurl+ 'methodname' 
      }) 
      .success(function (data, status, headers, config) { 
       successCallBack(data); 
      }) 
      .error(function (data, status, headers, config) { 
       $log.warn(data, status, headers, config); 
      }) 
      } 
    }); 

あなたは

angular.module('myApp').controller('SampleController', 
      function ($scope,ConnectionService){ 
        ConnectionService.getData(function(response){ 
        $scope.object=response; 
      }); 
} 
関連する問題