2017-05-26 43 views
0

我有下拉,從json生成項目。ajax重載角js

`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組合框新輸入的數據沒有在下拉填充到數據庫。它在頁面重新加載後填充。點擊提交按鈕時如何重新加載ajax調用,這樣新輸入的項目就會出現在下拉列表中,而不會重新加載頁面。我希望你能理解我的問題。

+0

正確解釋你的需要 – jose

+0

你不能再次調用函數並綁定數據嗎? – Edison

+0

你只是通過前端保存一個新的數據到數據庫,對吧?代碼在同一個控制器中? –

回答

0

調用getUrlData一旦保存新的數據API調用成功避免新的要求。

如:

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

當您使用打字組合框輸入到數據庫的新數據。您需要再次觸發下拉式getdata api。或者在通過打字組合框將新數據分配到db之後使用$route.reload(),但是,它將調用所有即時功能請求。