我正构建一个角度模块,它是一个函数库,用于调用BackEnd中的一些Rest服务,问题是这个模块是集中式的,Rest Api是在各个域中,每个用户一个。 我想在用他的域名字符串初始化的客户端中运行我的模块,因此他们将调用正确的Rest服务。 这个是客户端应用程序中根角js的一个愚蠢的例子,我知道它是错误的,但它很好地表达了我想要实现的目标。
angular.module('UserApp', ['MyRestLibrary("user_domain")'];
希望明白,对不好的英语抱歉。 感谢所有建议
答案 0 :(得分:1)
查看提供商:https://docs.angularjs.org/guide/providers
您可以尝试将服务/工厂转换为提供商,并在初始化模块时使用域进行配置。像这样:
// Create your service as a provider
angular
.module('MyRestLibrary')
.provider('myRestService', function() {
this.domain = '';
this.$get = function($http) {
var domain = this.domain;
return {
myRestMethod: function() {
return $http.get(domain + '/myRestMethodUrl');
}
}
};
this.setDomain = function(domain) {
this.domain = domain;
};
});
// Configure your module
angular
.module('MyRestLibrary')
.config(function(myRestServiceProvider) {
myRestLibraryProvider.setDomain('user_domain');
});
// Use your module
angular
.module('UserApp', ['MyRestLibrary']);
这是一个有效的JSFiddle示例:http://jsfiddle.net/dvj0n539/