2016-07-22 1 views
0

Мое приложение имеет несколько контроллеров, и каждый из них использует url для запроса запроса, для которого он работает.хранить url в файле conf, который будет использоваться как глобальная переменная

Мой 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

Я имел в виду, чтобы получить URL из текстового файла, чтобы вы бы секрет производства ? –

+0

Возможно, но это будет изрядно. почему ты хочешь сделать это? Загрузка его в виде угловой константы или значения - лучший способ сделать это. – Aron

+0

Я хочу, чтобы конечные пользователи могли изменять URL-адрес, не открывая фактический код –

0

Создайте сервис, используя параметр angle.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; 
} 
Смежные вопросы