我正在使用 Angular $http 从数据库中获取一些数据。我可以成功获取数据,但在前端向用户显示该数据之前,我想循环访问数据并进行一些更改。
$http.get("/getList").then(function(data ̶,̶ ̶s̶t̶a̶t̶u̶s̶ ) {
// setting data to the front end
$scope.returnedData = data.data;
},function errorCallback(response) {
console.log(response.data.message)
});
}
我的循环功能:
if($scope.returnedData.modules.length > 0){
for(var i=0; i<=$scope.returnedData.modules.length; i++){
if($scope.returnedData.modules[i].carType === 2){
$scope.returnedData.modules[i].carModel = $scope.returnedData.modules[i].carModel / 52;
} else if($scope.returnedData.modules[i].truckType === 2){
$scope.returnedData.modules[i].truckModel = $scope.returnedData.modules[i].truckModel / 52;
}
}
}
如何链接 Angular promise ,以便一旦获得数据,我就可以循环遍历它并根据需要进行更改,然后将其设置到前端。
最佳答案
只需处理获取的数据,然后将结果存储到 $scope
变量:
$http.get("/getList")
.then(function(data, status) {
if(data.data.modules.length > 0) {
for(var i=0; i<=data.data.modules.length; i++) {
if(data.data.modules[i].carType === 2) {
data.data.modules[i].carModel = data.data.modules[i].carModel / 52;
} else if(data.data.modules[i].truckType === 2){
data.data.modules[i].truckModel = data.data.modules[i].truckModel / 52;
}
}
}
// Storing the result
$scope.returnedData = data.data;
})
.catch(function(error) {
console.error(error)
});
类似的代码检查是否存在以及 modulesWithCartypeEqualToTwo
和 modulesWithTrucktypeEqualToTwo
数组,以实现更舒适的调试:
$http.get("/getList")
.then(function(data, status) {
var modulesWithCartypeEqualToTwo = [];
var modulesWithTrucktypeEqualToTwo = [];
if(data.data.modules) {
if(data.data.modules.length > 0) {
for(var i=0; i<=data.data.modules.length; i++) {
if(data.data.modules[i].carType === 2) {
modulesWithCartypeEqualToTwo.push(data.data.modules[i])
data.data.modules[i].carModel = data.data.modules[i].carModel / 52;
} else if(data.data.modules[i].truckType === 2) {
modulesWithTrucktypeEqualToTwo.push(data.data.modules[i])
data.data.modules[i].truckModel = data.data.modules[i].truckModel / 52;
}
}
}
}
console.log('modules with carType === 2');
console.log(modulesWithCartypeEqualToTwo);
console.log('modules with truckType === 2');
console.log(modulesWithTrucktypeEqualToTwo);
// Storing the result
$scope.returnedData = data.data;
})
.catch(function(error) {
console.error(error)
});
关于javascript - Angular JS Promises with $http——循环返回的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45266520/