2016-11-09 48 views
0

为了提供顾客到我的角度应用,这里是我的代码:在浏览器中设置的客户端动态

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

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

但我的目的是提供动态主机名和端口这项服务。

那么如何实现呢?

感谢

UPADTE

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

下面的代码。

第6行弹性服务器变量包含服务器名称和端口 的串联,但在第11行弹性服务器变量为空。

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

动态......回应什么? – Quentin

+0

Duplicate:http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call – Quentin

+0

感谢昆汀我明白了为什么它不能为我工作。 您能否使用回调或承诺为我提供解决方案的例子? – kkung

回答

0

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

let port = 9200; 
let hostName = elasticHost; 

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

     return esFactory({ 
      host: elasticserver, 
      log: 'warning' 
     }); 
    } 
); 
相关问题