您可以將值存儲在服務中,將其配置到運行階段,然後再訪問這些值。例如:
.factory('UrlService', function() {
var UrlService = {};
UrlService.baseUrl = undefined; // you can set a default value
UrlService.getUsersUrl = function() {
if (UrlService.baseUrl === undefined) {
return undefined;
} else {
return UrlService.baseUrl + '/Users/';
}
};
return UrlService;
});
運行階段發生在配置後。
.run(function(UrlService) {
UrlService.baseUrl = 'localhost:8001/api/v1';
});
然後,在你的控制器等你可以注入UrlService做
UrlService.getUsersUrl()
編輯:重寫了答案。
編輯2:另一種方法。
在我看來,你只是真的需要baseUrl
是一個常數。所以,你可以這樣做:
.value('baseUrl', 'localhost:1337')
.factory('urlService', ['baseUrl', function(baseUrl) {
return {
getUsersUrl: function() { return baseUrl + '/users/'; },
// OR
usersUrl: baseUrl + '/users/' // it can also be a primitive value
}
}]);
這種方法適用(並且是多「的角路」),如果你不需要實際配置的baseUrl。例如,如果您可以根據運行哪個環境(開發,生產等)來填寫baseUrl的相應值,則無需對其進行配置。或者,如果該值是恆定的。
非常感謝,正是我需要的! –