2017-05-26 44 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(),但是,它将调用所有即时功能请求。