2016-07-22 67 views
0

我的應用程序可以有幾個控制器,每個控制器都使用一個url來爲它的工作視圖做請求。在用作全局變量的conf文件中存儲url

我的url看起來像這樣:htttp:// myurl/requestSpecificHeader。

Url目前是硬編碼,不能做。我希望將它存儲在config.txt或.json中或者可以輕鬆重寫的東西,比將它放到我的app.js中並使其成爲在一個控制器中使用的全局變量。由於我的應用程序相當小(4個視圖),我只有一個文件可以容納我所有的控制器和服務。

什麼是繼續進行的最佳方式?

回答

1

聲明爲一個常數:

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

現在,你可以注入該數值到你的控制器:

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

我意思是從一個txt文件中獲取的URL你會知識 ? –

+0

這是可能的,但它會很挑剔。你爲什麼想這樣做?將其作爲角常量或值加載是實現此目的的最佳方式。 – Aron

+0

我希望最終用戶能夠在不打開實際代碼的情況下修改網址 –

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; 
}