Возможно необработанное отклонение, когда попытка отклонить модальное

У меня есть кнопка отмены на моем модале и есть функция щелчка, которая вызывает:

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

его работа, но сделать эту ошибку:

Возможно необработанное отклонение: undefined

или когда нажмите на клавишу Esc:

Возможно необработанное отклонение: нажатие клавиши выхода

Я знаю, что могу использовать приведенный ниже код в моей конфигурации и отключить эти типы ошибок:

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

но я хочу решить это. Вы знаете, как я могу это исправить?

3 ответа

Чтобы избежать 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 операция.

Для получения дополнительной информации см. Справочник по API UI-Bootstrap Directive - uib.bootstrap.modal

С использованием$uibModalInstance.close(false)вместо$uibModalInstance.dismiss()решит эту проблему

Если вы не хотите указывать причину, вы можете использовать $uibModalInstance.close(), Вы можете иметь блок catch как:

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

Может быть ошибка только для reason параметр, который ожидается в dismiss функции, хотя я не уверен в этом.

Другие вопросы по тегам