[英]setup $http url from .properties file in angularjs
我的應用程序中有一些服務。
loginApp.factory('urlService', function() {
return {
baseUrl : function(){
return 'http://localhost:8080/myAppName'
}
}
});
互相使用這項服務。
loginApp.factory('loginServices', function($http,urlService) {
return {
loginAuth : function(aut,resp){
return $http({
method: 'GET',
url: urlService.baseUrl()+'auth',
}).success(function(result) {
return result;
});
}
}
});
我想從應用程序根目錄中存在的.properties文件配置http://localhost:8080/myAppName
。
你可以做這樣的事情
angular.module('app.properties', []).provider('properties', function() {
var resource;
$.ajax({
url: 'properties.json',
dataType: 'json',
async: false,
success: function(data) {
resource = data;
}
});
this.properties= resource;
this.$get = function() {
return this.properties;
};
});
然后在控制器/服務中使用此提供程序來訪問屬性
angular.module('loginApp', ['app.properties']).factory('urlService', function(properties) {
return {
baseUrl : function(){
return properties.baseUrl;
}
}
});
而且你的properties.json應該像
{
"baseUrl" :"http://localhost:8080/myAppName"
}
注意:我已經使用jquery ajax加載了properties.json,因為它不應該是異步調用,所以我設置了async:false
$.ajax({
url: 'properties.json',
dataType: 'json',
**async: false**,
success: function(data) {
resource = data;
}
});
我認為在這種情況下,最好的選擇是創建一個服務,然后可以將其注入,並在該服務中提取配置文件並將內容分配給返回的變量(希望到目前為止是有意義的)
雖然這會在可能出現種族問題, loginService
在加載配置之前調用loginService
但是如果您充分利用了loginService
,那么所有這些對您來說都是微不足道的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.