使用AngularJs中的一些参数初始化模块

时间:2015-02-19 14:09:22

标签: javascript angularjs

我正构建一个角度模块,它是一个函数库,用于调用BackEnd中的一些Rest服务,问题是这个模块是集中式的,Rest Api是在各个域中,每个用户一个。 我想在用他的域名字符串初始化的客户端中运行我的模块,因此他们将调用正确的Rest服务。 这个是客户端应用程序中根角js的一个愚蠢的例子,我知道它是错误的,但它很好地表达了我想要实现的目标。

angular.module('UserApp', ['MyRestLibrary("user_domain")'];

希望明白,对不好的英语抱歉。 感谢所有建议

1 个答案:

答案 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/