Подтверждение с SweetAlert, Vue & Lravael - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь удалить свои данные после подтверждения, и для этого я хочу использовать sweetalert .

1

Если я использую простое предупреждение типа:

deletePage(index) {
 if (confirm("Do you really want to delete it?")) {
   let page = this.pages[index];
   axios.delete(`/api/pagedelete/${page.id}`).then(response => {
      this.pages.splice(index, 1);
   });
 }
},

Работает нормально

2

Когда я хочу использовать подсластитель, как:

deletePage(index) {
  let page = this.pages[index];
                swal({ 
                    title: "Are you sure ?",
                    text: "You will not be able to recover this page !",
                    type: "warning",
                    showCancelButton: true,
                    confirmButtonColor: "#DD6B55",
                    confirmButtonText: "Yes, delete it !",
                    cancelButtonText: "No, cancel !",
                    closeOnConfirm: false,
                    closeOnCancel: false 
                }, 
                function(isConfirm) {
                    if (isConfirm) {
                            axios.delete(`/api/pagedelete/${page.id}`).then(response => {
                                this.pages.splice(index, 1);
                            });
                        }
                        else {
                            swal("Cancelled", "Your page has not been deleted !", "error");   
                        }
                    }
                );
}

Не работает!

Ошибка, которую я получаю:

uncaught exception: SweetAlert: Unexpected 2nd argument (function (isConfirm) {
 var _this2 = this;
 if (isConfirm) {
 axios.delete('/api/pagedelete/' + page.id).then(function (response) {
 _this2.pages.splice(index, 1);
 });
 } else {
 swal("Cancelled", "Your page has not been deleted !", "error");
 }
 })

Есть идеи, как это исправить?

1 Ответ

0 голосов
/ 04 сентября 2018

Документация показывает это, используя обещания для подтверждения :

swal({
  title: "Are you sure?",
  text: "Once deleted, you will not be able to recover this imaginary file!",
  icon: "warning",
  buttons: true,
  dangerMode: true,
})
.then((willDelete) => {
  if (willDelete) {
    swal("Poof! Your imaginary file has been deleted!", {
      icon: "success",
    });
  } else {
    swal("Your imaginary file is safe!");
  }
});

Ваш пример будет:

deletePage(index) {
  let page = this.pages[index];
  swal({ 
    title: "Are you sure ?",
    text: "You will not be able to recover this page !",
    type: "warning",
    showCancelButton: true,
    confirmButtonColor: "#DD6B55",
    confirmButtonText: "Yes, delete it !",
    cancelButtonText: "No, cancel !",
    closeOnConfirm: false,
    closeOnCancel: false 
  }).then((confirmed) => {
    if (confirmed) {
      axios.delete(`/api/pagedelete/${page.id}`).then(response => {
        this.pages.splice(index, 1);
      });
    } else {
      swal("Cancelled", "Your page has not been deleted !", "error");   
    }
  });
}
...