我有多个删除请求,前面有一个 OPTIONS
飞行前请求。但是在OPTIONS
请求之后,控件进入了$q.all
的then。这是我的代码:
companyMasterC.confirmDelete = function(ev, text) {
simpleDialog.verifyDelete(ev, text).then(function() {
companyMasterC.deletePromise = companyMasterC.deleteSelected().then(function(response) {
companyMasterC.getCompanies();
}, function(error) {
console.log(error);
});
});
};
companyMasterC.deleteSelected = function(){
var promises = companyMasterC.selectedRows.map(function(selectedRow) {
return company.delete({id:selectedRow.id});
});
return $q.all(promises);
};
因此,“网络”选项卡中发生的情况如下:首先执行 OPTIONS
请求,然后执行 GET
请求companyMasterC.getCompanies();
它应该在执行DELETE
请求时执行。在 GET
请求之后执行 DELETE
请求。
最佳答案
改变
return company.delete({id:selectedRow.id});
至
return company.delete({id:selectedRow.id}).$promise;
修改后的代码:
companyMasterC.confirmDelete = function(ev, text) {
simpleDialog.verifyDelete(ev, text).then(function() {
companyMasterC.deletePromise = companyMasterC.deleteSelected().then(function(response) {
companyMasterC.getCompanies();
}, function(error) {
console.log(error);
});
});
};
companyMasterC.deleteSelected = function(){
var promises = companyMasterC.selectedRows.map(function(selectedRow) {
return company.delete({id:selectedRow.id}).$promise;
});
return $q.all(promises);
};
关于带有飞行前请求的 Angularjs $q.all 在 OPTIONS 请求后解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35932610/