Jquery html2canvas在$modalInstance关闭之前运行

Jquery html2canvas在$modalInstance关闭之前运行,jquery,angularjs,modal-dialog,html2canvas,Jquery,Angularjs,Modal Dialog,Html2canvas,我目前正在Angular应用程序中实现一个反馈模式,用于拍摄用户当前页面的“屏幕截图”。但是,html2canvas函数在my$modalInstance关闭之前执行。本质上,我想捕捉模态窗口“下面”的内容 我的逻辑可能太简单了: app.controller('feedbackCtrl', function($scope, $modalInstance) { $scope.feedback = { choice: null }; // Promise that $moda

我目前正在Angular应用程序中实现一个反馈模式,用于拍摄用户当前页面的“屏幕截图”。但是,
html2canvas
函数在my
$modalInstance
关闭之前执行。本质上,我想捕捉模态窗口“下面”的内容

我的逻辑可能太简单了:

app.controller('feedbackCtrl', function($scope, $modalInstance) {
  $scope.feedback = {
    choice: null
  };

  // Promise that $modalInstance is finished
  $modalInstance.result.then(function() {
    if($scope.feedback.choice) {
      var target = $('body');
      html2canvas(target, {
        onrendered: function(canvas) {
          var img = canvas.toDataURL();
          window.open(img);
        }
      });      
    }
  });

  angular.extend($scope, {
    ok: function () {
      $modalInstance.close();    
    },
    cancel: function() {
      $modalInstance.dismiss('cancel');
    }
  });
});
关于如何确保my
$modalInstance
html2canvas()
触发之前完成其执行,有什么建议吗


提前谢谢

在调用
html2canvas()
之前,我可以通过jQuery以一种黑客的方式简单地从DOM中删除模式窗口来解决这个问题:


我对这个解决方案不感兴趣,但它现在还可以工作。

我能够用jQuery以一种黑客的方式解决这个问题,只需在调用
html2canvas()之前从DOM中删除模式窗口即可:


我对这个解决方案不感兴趣,但它目前仍然有效。

你能指导我如何在你的角度项目中引用html2canvas吗?你能指导我如何在你的角度项目中引用html2canvas吗
$modalInstance.result.then(function() {
  if($scope.feedback.choice) {
    $('.modal-content').remove(); // Removes the modal from the DOM
    var target = $('body');
    html2canvas(target, {
      onrendered: function(canvas) {
        var img = canvas.toDataURL();
        window.open(img);
      }
    });      
  }
});