2017-05-26 9 views
0

jsonから項目を生成するドロップダウンがあります。角度jsでajaxリロード

`generalService.getUrlData('get_data') 
     .then(function(data){ 
      $scope.names = data.data; 
      for (var i=0; i < $scope.names.length; i++) { 
       var compn = $scope.names[i].NAME; 
       $scope.compname.push(compn); 
      } 
    });` 

私はtypeahedコンボボックスに、新たに入力されたデータを使用してDBへの新しいデータを入力したときに私の質問には、ドロップダウンリストに移入されていないされています。ページがリロードされた後に移入されます。送信ボタンがクリックされたときにajax呼び出しを再ロードする方法。ページをリロードすることなく、新しく入力した項目がドロップダウンに表示されます。

+0

あなたの必要性を正しく説明してください。 – jose

+0

あなたは関数をもう一度呼び出すことはできませんか? – Edison

+0

フロントエンドのみで新しいデータをdbに保存していますか?コードは同じコントローラにありますか? –

答えて

0

をシミュレートすることにより、新しい要求を回避することができます保存する新しいデータAPI呼び出しが成功したらgetUrlDataを呼び出します。

例:

function getAllUrlData() { 
    generalService.getUrlData('get_data') 
    .then(function(data){ 
     $scope.names = data.data; 
     for (var i=0; i < $scope.names.length; i++) { 
      var compn = $scope.names[i].NAME; 
      $scope.compname.push(compn); 
     } 
    }); 
} 

function save newData (new_data) { 
    generalService.veNewasUrlData('get_data') 
    .then(function(data){ 
     getAllUrlData() // fecth all data again when save data is success 
    }); 
} 

OR

再びgetAllUrlData機能を呼び出さないでください。新しいデータを保存するときは、新しいデータを$scope.compnameにプッシュするだけです。

$scope.compname.push(newData) // this will automatically come once reload. So no issues with temporary push 
1

サーバーからクライアントに新しいデータをロードする場合は、新しいhttp要求を呼び出す必要があります。あなたのデータは、単に消費者から入力された場合

、あなたはサーバー側更新

0

typeahedコンボボックスを使用してdbに新しいデータを入力したとき。ドロップダウンのgetdata APIを再度起動する必要があります。新しいデータの後に$route.reload()をtypeahedコンボボックスでdbに使用しますが、それはすべてのオンザフライ関数要求を呼び出します。