我有一个从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调用,以便新输入的项目显示在下拉列表中而不重新加载页面。我希望您理解我的问题。
答案 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()
但是,它将调用所有动态函数请求。