2016-11-09 47 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' 
     }); 
    } 
); 
相關問題