Подтверждение подтверждения не работает с Ember js

1

Я пытаюсь создать всплывающее окно, которое подтверждает, хотите ли вы удалить документ. Если я попробую:

if(alertify.confirm("Delete this?')) {
    this.store.findRecord('document', docId, {backgroundReload: false}).then((doc) => {
    doc.destroyRecord();
    alertify.success('Document successfully deleted!');
}

он не ждет подтверждения перед запуском кода удаления, потому что alertify.confirm не блокирует, как я понимаю. Если я попробую:

deleteFile(docId) {
  alertify.confirm("Are you sure you want to delete this document?", function (e) {
    if (e) {
      this.store.findRecord('document', docId, {backgroundReload: false}).then((doc) => {
        doc.destroyRecord();
        alertify.success('Document successfully deleted!');
      });
    } else {
      alertify.error('Something went wrong!');
    }
  });
}

он запрашивает подтверждение, но код удаления не работает, так как магазин подходит как неопределенный, поэтому findRecord не работает. Я попытался вставить магазин в качестве сервиса, но это тоже не работает. Есть ли способ заставить это окно подтверждения работать?

Теги:
ember.js
alertifyjs
alertify

1 ответ

2
Лучший ответ

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

deleteFile(docId) {
  alertify.confirm("Are you sure you want to delete this document?", (e) => {
    if (e) {
      this.store.findRecord('document', docId, {backgroundReload: false}).then((doc) => {
        doc.destroyRecord();
        alertify.success('Document successfully deleted!');
      });
    } else {
      alertify.error('Something went wrong!');
    }
  });
}
  • 0
    Работает отлично, спасибо за объяснение!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню