2

我有多个删除请求,前面有一个OPTIONS飞行前请求。但是控件在请求$q.all之后进入。OPTIONS这是我的代码:

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请求被执行之后。

4

1 回答 1

2

改变

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);
};
于 2016-03-11T06:18:35.940 回答