动态设置浏览器中的客户端

时间:2016-11-09 21:35:43

标签: javascript angularjs elasticsearch

为我的角度应用程序提供客户端,这是我的代码:

app.service('client', function (esFactory) {
        var elasticserver='elasticHost:9200';

        return esFactory({
            host: elasticserver,
            log: 'warning'
        });
    }
);

但我的目的是动态地为此服务提供主机名和端口。

那么如何实现呢?

由于

UPADTE

服务器名称和端口存储在数据库中。 所以我试图通过http调用来获取这些值。

在代码下方。

在第6行,elasticserver变量包含servername和port的串联 但是在第11行,elasticserver变量是空的。

app.service('client', function (esFactory, $http) {
    var elasticserver = "";
    $http.get("angularAction").success(
            function(data) {
                elasticserver = data['serverName']+":"+data['port'];
                alert("elasticserver : "+elasticserver);
            }).error(function(data, status, headers, config) {
                            // called asynchronously if an error occurs
                            // or server returns response with an error status.
    });
    alert("elasticserver : "+elasticserver);
    return esFactory({
        host: elasticserver,
        log: 'warning'
    });
}
);

1 个答案:

答案 0 :(得分:0)

如果您的代码正常运行,但您需要动态设置服务器,则可以连接主机名和端口。

let port = 9200;
let hostName = elasticHost;

app.service('client', function (esFactory) {
        var elasticserver= hostName + ':' + port;

        return esFactory({
            host: elasticserver,
            log: 'warning'
        });
    }
);