ajax在角度js中重新加载

时间:2017-05-26 05:54:35

标签: javascript angularjs json ajax

我有一个从json生成项目的下拉列表。

`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);
            }
    });`

我的问题是,当我使用键入的组合框向db输入新数据时,新输入的数据不会在下拉列表中填充。重新加载页面后填充。如何在单击提交按钮时重新加载ajax调用,以便新输入的项目显示在下拉列表中而不重新加载页面。我希望您理解我的问题。

3 个答案:

答案 0 :(得分:1)

如果要将新数据从服务器加载到客户端,则需要调用新的http请求。

如果您的数据刚从消费者处输入,则可以通过模拟服务器端更新来避免新请求

答案 1 :(得分: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
    });
}

不要再次调用getAllUrlData功能。在保存新数据时,只需将新数据推送到$scope.compname

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

答案 2 :(得分:0)

使用typeahed组合框向db输入新数据时。你需要再次触发下拉getdata api。或者通过键入的组合框在新数据到db之后使用$route.reload()但是,它将调用所有动态函数请求。