尝试解散模态时可能无法处理的拒绝

时间:2018-10-03 23:23:50

标签: angularjs angular-ui-bootstrap angular-bootstrap

我的模态上有一个取消按钮,并且有一个单击函数,调用:

onCancelClick: function () {
    $uibModalInstance.dismiss()
}

它可以工作,但会出现此错误:

  

可能未处理的拒绝:undefined

或单击 esc 键时:

  

可能无法处理的拒绝:按退出键

我知道我可以在配置中使用以下代码,并关闭以下类型的错误:

app.config(function ($qProvider) {
    $qProvider.errorOnUnhandledRejections(false);
});

但是我想解决它。 你知道我该怎么解决吗?

2 个答案:

答案 0 :(得分:0)

为避免出现possibly unhandled rejection消息,只需处理拒绝:

var modalPromise = $uibModal.open(options).result;

modalPromise
  .then(function(result) {
    console.log("Modal closed with result", result);
}).catch(function(reason) {
    console.log("Modal dismissed with reason", reason);
});

$uibModal.open方法返回一个对象,该对象的result属性是一个诺言,它按照result操作的.close自变量实现或被拒绝与reason操作的.dismiss参数一起使用。

有关更多信息,请参见UI-Bootstrap Directive API Reference - uib.bootstrap.modal

答案 1 :(得分:-1)

如果您不想传递任何原因,则可以使用$uibModalInstance.close()。您可以使用以下捕获块:

try{    
  $uibModalInstance.dismiss();
} catch (err){
//Check what error you are getting.
}

可能只是reason函数的错误,尽管我不确定dismiss函数中的错误。