2016-11-09 3 views
0

が私の角アプリケーションにクライアントを提供するために、ここに私のコードです:ブラウザにクライアントを設定すると、動的

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

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

しかし、私の目的は、このサービスに動的にホスト名とポートを提供することです。

どのように達成するには?

おかげ

UPADTE

サーバー名とポートは、データベースに格納されています。 私はhttp呼び出しでこれらの値を取得しようとしていました。

コードの下に。

行6では、elasticserver変数にサーバ名とポート の連結が含まれていますが、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

...何に応答してですか? – Quentin

+0

重複: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' 
     }); 
    } 
); 
関連する問題