2016-07-22 8 views
0

Meine App hat derzeit mehrere Controller und jeder von ihnen verwendet eine URL, um Anfrage für die Ansicht, für die es funktioniert.speichern URL in Conf-Datei als globale Variable verwendet werden

Meine URL wie folgt aussehen: htttp: // myurl/requestSpecificHeader.

Url ist derzeit hart codiert, was nicht möglich ist. Ich möchte, dass es in einer config.txt oder .json oder etwas einfach zu überschreiben gespeichert wird, als es zu meinem app.js zu bekommen und es eine globale Variable zu machen, die in einem Controller verwendet wird. Da meine App ziemlich klein ist (4 Ansichten), habe ich nur eine Datei, die alle meine Controller und Dienste enthält.

Was wäre der beste Weg, um fortzufahren?

Antwort

1

es als Konstante deklarieren:

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

Jetzt können Sie diesen Wert in Ihre Controller injizieren:

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

Ich war also die URL aus einer txt-Datei zu erhalten, würden Sie Fachwissen ? –

+0

Es ist möglich, aber es wird knifflig sein. Warum willst du das machen? Das Laden als Winkelkonstante oder Wert ist der beste Weg, dies zu tun. – Aron

+0

Ich möchte, dass die Endbenutzer in der Lage sind, die URL zu ändern, ohne den eigentlichen Code zu öffnen –

0

Erstellen Sie einen Dienst mit der angular.constant, und fügen Sie dem Dienst alle Endpunkte als Konstanten hinzu.

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

Dann in Ihnen Service, die Endpunkte injizieren und nutzen.

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