首页 > 解决方案 > 尝试关闭模式时可能未处理的拒绝

问题描述

我的模式上有一个取消按钮,并且有一个点击功能,它调用:

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

它的工作,但犯了这个错误:

可能未处理的拒绝:undefined

或单击esc键时:

可能未处理的拒绝:escape key press

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

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

但我想解决它。你知道我该如何解决这个问题吗?

标签: angularjsangular-ui-bootstrapangular-bootstrap

解决方案


要避免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属性是一个 Promise,它要么通过操作的result参数实现,要么通过操作的参数.close被拒绝。reason.dismiss

有关详细信息,请参阅UI-Bootstrap 指令 API 参考 - uib.bootstrap.modal


推荐阅读