Я пытаюсь создать всплывающее окно, которое подтверждает, хотите ли вы удалить документ. Если я попробую:
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 не работает. Я попытался вставить магазин в качестве сервиса, но это тоже не работает. Есть ли способ заставить это окно подтверждения работать?
Вы используете 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!');
}
});
}