Подтверждение подтверждения не работает с Ember js
Я пытаюсь сделать всплывающее окно, которое подтверждает, если вы хотите удалить документ. Если я попробую:
if(alertify.confirm("Delete this?')) {
this.store.findRecord('document', docId, {backgroundReload: false}).then((doc) => {
doc.destroyRecord();
alertify.success('Document successfully deleted!');
}
он не ожидает подтверждения перед запуском кода удаления, так как alerttify.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 не работает. Я пытался внедрить магазин в качестве службы, но это тоже не работает. Есть ли способ заставить этот ящик подтверждения работать?
1 ответ
Решение
Ты используешь this
в функции, таким образом, ссылаясь на this-контекст этой функции. Вы можете либо использовать жирные функции стрелок, либо назначить внешний 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!');
}
});
}