首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Alertify确认不适用于Ember js

Alertify确认不适用于Ember js
EN

Stack Overflow用户
提问于 2017-06-19 12:17:39
回答 1查看 155关注 0票数 1

我正在尝试创建一个弹出框,以确认是否要删除文档。如果我试着:

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

在运行delete代码之前,它不会等待确认,因为我理解,alertify.confirm是非阻塞的。如果我试着:

代码语言:javascript
复制
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不能工作。我试过将商店作为一种服务注入,但这也不起作用。有办法让这个确认箱正常工作吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-19 12:45:08

在函数中使用this,从而引用该函数的这个上下文。您可以使用fat箭头函数,也可以将外部此函数赋值给变量。前者看起来是这样的:

代码语言:javascript
复制
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!');
    }
  });
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44630371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档