Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Alertify confirm不适用于Ember js_Javascript_Ember.js_Alertify_Alertifyjs - Fatal编程技术网

Javascript Alertify confirm不适用于Ember js

Javascript Alertify confirm不适用于Ember js,javascript,ember.js,alertify,alertifyjs,Javascript,Ember.js,Alertify,Alertifyjs,我正在尝试创建一个弹出框,确认您是否要删除文档。如果我尝试: if(alertify.confirm("Delete this?')) { this.store.findRecord('document', docId, {backgroundReload: false}).then((doc) => { doc.destroyRecord(); alertify.success('Document successfully deleted!'); } delet

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

if(alertify.confirm("Delete this?')) {
    this.store.findRecord('document', docId, {backgroundReload: false}).then((doc) => {
    doc.destroyRecord();
    alertify.success('Document successfully deleted!');
}
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!');
    }
  });
}
它不会在运行删除代码之前等待确认,因为据我所知,alertify.confirm是非阻塞的。如果我尝试:

if(alertify.confirm("Delete this?')) {
    this.store.findRecord('document', docId, {backgroundReload: false}).then((doc) => {
    doc.destroyRecord();
    alertify.success('Document successfully deleted!');
}
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不起作用。我曾尝试将商店作为一项服务注入,但也不起作用。是否有办法使此确认框正常工作?

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

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!');
    }
  });
}