0

Ich habe ein Problem beim Aufruf einer separaten Funktion, wenn mein Versprechen durch Schließen oder Abbrechen eines Modals in Angular/Typescript zurückgegeben wird. Vielleicht versuche ich, etwas Unmögliches zu tun, aber alle Beispiele, die ich gesehen habe, protokollieren die zurückgegebenen Daten entweder zurück an die Konsole oder an eine Variable oder werfen eine Warnung auf. Wie so:Typescript/Angular - Aufruf separate Funktion nach modaler Ergebnis Rückgabe

modalInstance.result.then(function (result) { 
    console.log(result); 
}); 

Was ich suche zu tun ist, rufen Sie eine separate Funktion einmal das Ergebnis zurückgegeben wird, wie:

modalInstance.result.then(function (result) { 
    console.log(result); 
    this.EditWidget(result); 
}); 

Aber dies nicht funktioniert und ich kann nicht scheinen herauszufinden, warum. Ich habe alles ausprobiert und ich denke, ich vermisse nur etwas darüber, wie das Versprechen hier funktioniert.

Irgendwelche Ideen?

+0

Ich sehe etwas falsch nicht der Code, den Sie geschrieben haben . Was lässt dich denken, dass der Fehler da ist? Funktioniert diese Funktion außerhalb des Versprechens? Können Sie mehr Code zur Verfügung stellen, um zu zeigen, was Sie alles tun? –

Antwort

1

Mein Gess ist, dass this ist nicht, was Sie erwarten, dass es zu sein. Sie müssen den Wert dieser und verwenden Sie den erfassten Wert in den Rückruf erfassen:

var that = this; 
modalInstance.result.then(function (result) { 
    console.log(result); 
    that.EditWidget(result); 
}); 

oder binden, um die Funktion dieses:

var callback = function (result) { 
    console.log(result); 
    this.EditWidget(result); 
}; 

modalInstance.result.then(callback.bind(this)); 
+0

Brilliant! Vielen Dank! – gibbypoo