0

Ich versuche ein Element in meiner eckigen CLI App zu löschen. Ich habe süße Warnung als Warnung verwendet und ich möchte ein Element aus der Liste löschen. Hier ist ein Code dafür. Dieser Code befindet sich in einer Typoskriptdatei.Angular 2 - Süßer Alarm Rückruf Funktion funktioniert nicht

Problem ist, wenn ich bestätige löschen, gibt es mir Fehler, dass "this.authserivce" undefiniert ist. Es funktioniert ordnungsgemäß, wenn ich keinen süßen Alarm als Bestätigung verwende. Ich denke, dass ich Parameter in Rückruffunktion übergeben muss, aber nicht weiß, was ich weitergeben soll. Also, wie kann ich das lösen?

+0

Können Sie den gesamten Code senden? Was ist 'authService.deleteUser' – Manav

+0

@manav Ich habe den Code aktualisiert. schau mal – parth

+0

vielleicht überschreibt sweetalert 'this'? – Manav

Antwort

0

1. Lösung: Verwenden Sie die arrow function, weil die Funktion Ausdruck binden this mit einem eigenen this

swal({ 
     title: "Are you sure?", 
     text: "You will not be able to recover this!", 
     type: "warning", 
     showCancelButton: true, 
     confirmButtonColor: "#DD6B55", 
     confirmButtonText: "Yes, delete it!", 
     closeOnConfirm: false 
    }).then((result) => { 
     if (result.value) { 
      this.authService.deleteUser(userData).subscribe(data => { 
       // response 
      }); 
     } 
    }); 

2. Lösung:

let that = this; 
swal({ 
     title: "Are you sure?", 
     text: "You will not be able to recover this!", 
     type: "warning", 
     showCancelButton: true, 
     confirmButtonColor: "#DD6B55", 
     confirmButtonText: "Yes, delete it!", 
     closeOnConfirm: false 
    }).then(function(result) { 
     if (result.value) { 
      that.authService.deleteUser(userData).subscribe(data => { 
       // response 
      }); 
     } 
    }); 
+1

Vielen Dank. Es funktioniert jetzt. – parth