2016-07-22 2 views
0

私のアプリはいくつかのコントローラを持っていますが、それぞれのコントローラは動作するビューの要求を行うためにURLを使います。URLをグローバル変数として使用するためにconfファイルに保存します

私のURLは次のようになります。htttp:// myurl/requestSpecificHeader。

URLは現在ハードコードされていますが、これは実行できません。 config.txtや.jsonや書き換えが容易なものに保存したいのですが、app.jsに入れて、それを1つのコントローラで使用するためのグローバル変数にするよりも簡単です。私のアプリケーションはかなり小さい(4ビュー)ので、私はすべてのコントローラとサービスを保持する1つのファイルしか持っていません。

進歩する最良の方法は何でしょうか?

答えて

1

定数として、それを宣言します。

angular.module('App').constant('myUrl', 'http://myurl/'); 

今すぐあなたのコントローラには、この値を注入することができます

app.controller('Ctrl', function(myUrl){ 
    var thisUrl = myUrl + 'requestSpecificHeader' 
}); 
+0

私はあなたの希望へのtxtファイルからURLを取得することを意味しました。ノーハウ ? –

+0

それは可能ですが、それは恐ろしいでしょう。なぜあなたはこれをしたいのですか?角の定数または値としてロードすることは、これを実行する最善の方法です。 – Aron

+0

最終的なユーザーが実際のコードを開かずにURLを変更できるようにします。 –

0

angular.constantを使用してサービスを作成し、すべてのエンドポイントを定数としてサービスに追加します。

App.constant('REGION_CONFIG_APIS', { 
     getCountries: '/api/Country/GetCounties', 
     addCountry: '/api/Country/AddCountry' 
    }); 

サービスでは、エンドポイントを挿入して使用してください。

App.service('regionConfigService', function (REGION_CONFIG_APIS,$q,DataService) { 

this.getCountryData = function() { 
    var deferred = $q.defer(); 
    DataService.GetData(REGION_CONFIG_APIS.getCountries) 
     .then(function (data) { 
      deferred.resolve(data); 
     }); 
    return deferred.promise; 
} 
関連する問題