我有四个API,用于不同的控制器。
网址:“htp://192.168.0。 31 :8010 / register”
网址:“htp://192.168.0。 31 :8010 / login”
网址:“htp://192.168.0。 31 :8010 / verifyAccount”
网址:“htp://192.168.0。 31 :8010 /个人资料”
和全局网址
网址:“htp://192.168.0。 31 :8010 /
我想知道全局网址何时更改 31到16 像
网址:“htp://192.168.0。 16 :8010 /
然后我必须更改所有API的网址 31到16 。这太复杂了,花了很长时间。
我怎样才能克服它? 请给我一些建议。
答案 0 :(得分:0)
您可以在角度Constant
app.js
来实现此目的
示例:
app.constant("apiurl", {
url:"htp://192.168.0.31:8010",
});
将此常量作为依赖项注入到ur控制器并访问apiurl,如下所示:
Url : apiurl.url + 'register';
答案 1 :(得分:0)
您可以使用interceptor
来实现在 .value 提供商
中添加API_URL
angular
.module('app')
.config(routerConfig)
.value('API_URL', 'http://192.168.0.31:8010');
在http拦截器中使用API_URL
angular
.module('app')
.factory('httpInterceptor', function($q, API_URL) {
var refresh = false;
var interceptor = {
request: function(config) {
// console.log('before config.url', config.url);
var url = config.url;
// skip the interceptor for any html request
if (url.substr(url.length - 5) == '.html') {
return config || $q.when(config);
}
config.url = API_URL + url;
}
};
return interceptor;
});
现在在您使用$ http的其他服务中,您可以直接调用api方法;它将通过拦截器,它将添加API_URL
angular
.module('app')
.factory('AuthService', function($http) {
var service = {
login: function(credentials) {
return $http.post('/login');
},
logout: function() {
return $http.get('/logout');
}
};
return service;
});