【问题标题】:Alertify confirm does not work with Ember js警报确认不适用于 Ember js
【发布时间】:2017-06-19 12:17:39
【问题描述】:

我正在尝试制作一个弹出框,用于确认您是否要删除文档。如果我尝试:

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 不起作用。我尝试将商店作为服务注入,但这也不起作用。有没有办法让这个确认框工作?

【问题讨论】:

    标签: javascript ember.js alertify alertifyjs


    【解决方案1】:

    您在函数中使用this,因此指的是该函数的this-context。您可以使用胖箭头函数或将外部 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!');
        }
      });
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-22
      • 1970-01-01
      • 2020-09-30
      • 2023-03-15
      • 1970-01-01
      • 2011-09-22
      • 2012-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多