如何调用方法我sweetalert 2

时间:2017-08-18 14:04:29

标签: angular sweetalert sweetalert2

在我的角度4项目中,我使用的是sweetalert 2的主题,我想在用户点击确认按钮时调用我的方法,但似乎我无法在函数内部调用任何方法

swal({
  title: 'Are you sure?',
  text: "You won't be able to revert this!",
  type: 'warning',
  showCancelButton: true,
  confirmButtonColor: '#3085d6',
  cancelButtonColor: '#d33',
  confirmButtonText: 'Yes, delete it!'
}).then(function () {

  // I want to call my method here but I can't do this.myMethod()

})

我知道这不是有角度的sweetalert,但有可能让它无变化地工作吗?

2 个答案:

答案 0 :(得分:5)

使用箭头函数表示法() =>。当您使用function关键字时,您将失去对this的访问权限。请将您的代码更改为以下代码:

swal({
  title: 'Are you sure?',
  text: "You won't be able to revert this!",
  type: 'warning',
  showCancelButton: true,
  confirmButtonColor: '#3085d6',
  cancelButtonColor: '#d33',
  confirmButtonText: 'Yes, delete it!'
}).then(()=> {

  this.myMethod(); // this should execute now

})

答案 1 :(得分:1)

正确的答案也对我有帮助,尽管我必须解决如何捕获“ 未兑现承诺”错误。我以为只要有人使用cancelButton觉得有用,我就将其添加到此处以完成操作。

swal({
   //code         
}).then(()=> {
   //code
},(error: any) => console.log(error));