Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在函数执行过程中使用BlockUI_Javascript_Angularjs_Promise_Blockui - Fatal编程技术网

Javascript 在函数执行过程中使用BlockUI

Javascript 在函数执行过程中使用BlockUI,javascript,angularjs,promise,blockui,Javascript,Angularjs,Promise,Blockui,在web应用程序中,有一个调用函数的按钮。如果我想在操作期间插入blockUI,我该怎么办?我做了承诺了吗?特别是在哪里 $scope.eraseDB = function(){ database.destroylocalDB(); }; 职能: destroylocalDB: function(){ localDB.destroy().then(function (response) { //Remove cache datacache.

在web应用程序中,有一个调用函数的按钮。如果我想在操作期间插入blockUI,我该怎么办?我做了承诺了吗?特别是在哪里

$scope.eraseDB = function(){
    database.destroylocalDB();
};
职能:

destroylocalDB: function(){

  localDB.destroy().then(function (response) {        
      //Remove cache
      datacache.dr = [];
      database.initDB();
  }).catch(function (err) { 
      console.log(err);
  });       
}
你看过照片了吗

请看下面的图片。配置后,您只需:

destroylocalDB: function(){
  blockUI.start(); 
  localDB.destroy().then(function (response) {  
      blockUI.stop();      
      //Remove cache
      datacache.dr = [];
      database.initDB();
  }).catch(function (err) { 
      blockUI.stop();
      console.log(err);
  });       
}
编辑

要实现您的愿望,您需要更改服务以回报承诺:

destroylocalDB: function(){

  return localDB.destroy().then(function (response) {        
      //Remove cache
      datacache.dr = [];
      database.initDB();
  }).catch(function (err) { 
      console.log(err);
  });       
}
因此,您可以:

$scope.eraseDB = function(){
    blockUI.start(); 
    database.destroylocalDB().then(function(){
        blockUI.stop();
    });
};

我没有测试,但它应该可以工作。

您还可以使用微调器来阻止UI,直到后台操作完成。比如:


这并不能回答问题,作为评论会更好。首先,非常感谢。关于你的回答我有个问题。有没有办法在“擦除”按钮中执行此操作?我有点:blockUI。。。。。。因为我尝试了,但控制台说:'无法读取未定义的属性then',非常感谢,+1非常有用!