【发布时间】:2016-11-27 06:37:03
【问题描述】:
我有一个表格,用户可以在其中选择多行并点击删除按钮。我需要我的代码循环遍历选定的记录并删除它们。
我正在调用customerService.delete({id: id}) 删除每条记录,但是我需要知道哪个失败,哪个成功,以便我可以适当地处理它。
我尝试过使用$q.all,但我不确定如何知道哪些行失败,哪些行成功:
var promises = [];
$('input:checkbox:checked', $('#customers')).each(function() {
var nRow = $(this).closest('tr')[0];
var aData = oTable.fnGetData(nRow);
var id = aData[0];
promises[id] = customerService.delete({id: id}).$promise;
});
$q.all(promises).then(
function(data) {
console.log(data);
}, function(data) {
console.log(data);
}
);
我如何知道我的哪些删除操作失败和成功?
编辑:我已经尝试了以下方法,但对于 id 和 status 却未定义。
var promises = [];
$('input:checkbox:checked', $('#customers')).each(function() {
var nRow = $(this).closest('tr')[0];
var aData = oTable.fnGetData(nRow);
var id = aData[0];
var promise = customerService.delete({id: id}).$promise;
promise.then(function(){
return {status: true, id: id}
}).catch(function(){
return {status: false, id: id}
})
promises.push(promise);
});
$q.all(promises).then(function(results) {
$.each(results, function(result) {
console.log(result.id + ' ' + result.status);
});
});
results 看起来像:
【问题讨论】:
标签: jquery angularjs promise deferred