我正在尝试创建一个弹出框,以确认是否要删除文档。如果我试着:
if(alertify.confirm("Delete this?')) {
this.store.findRecord('document', docId, {backgroundReload: false}).then((doc) => {
doc.destroyRecord();
alertify.success('Document successfully deleted!');
}在运行delete代码之前,它不会等待确认,因为我理解,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不能工作。我试过将商店作为一种服务注入,但这也不起作用。有办法让这个确认箱正常工作吗?
发布于 2017-06-19 12:45:08
在函数中使用this,从而引用该函数的这个上下文。您可以使用fat箭头函数,也可以将外部此函数赋值给变量。前者看起来是这样的:
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!');
}
});
}https://stackoverflow.com/questions/44630371
复制相似问题