2017-05-02 1 views
-1

aufrufen Ich versuche, Methode auf Erfolg meiner Ajax API Anruf aufrufen. Ich habe dieses (Kontext) innerhalb der lokalen Variablen gespeichert, die aber noch nicht in Lage ist, Kontext dieser Ansicht zu erhalten und Fehler zu erhalten, dass .setPdfUrl keine Funktion ist. Und wichtig ist, ich rufe Methode durch Pub/Sub-Mechanismus. Mein Code sieht aus wie -Nicht in der Lage, Methode unter Erfolg von API mit .bind (this)

kf.Events.off('getPdfUrl'); 
kf.Events.on('getPdfUrl', this.getPdfUrl); 

    getPdfUrl: function() { 
    var that = this; 
    $.ajax({ 
    url: kf.Settings.fileGeneratorUrl() + "/ikfc/singlereport", 
    type: 'POST', 
    data: { 
     //content 
    }, 
    success: function(result) { 
     that.setPdfUrl(kf.Settings.fileGeneratorUrl() + '/download?guid=' + 
     result.Message); 
    } 
    }); 

    }.bind(this), 

setPdfUrl: function(url){ 
    this.pdfUrl = url; 
    } 

Uncaught TypeError: that.setPdfUrl is not a function

+1

Got Lösung durch Bindung Kontext an initialize - kf.Events.on ('getPdfUrl', this.getPdfUrl.bind (this)); –

+0

Es wird empfohlen, eine Antwort auf Ihre eigene Frage zu schreiben, wenn Sie eine Lösung finden. Kommentare sollen um Klarstellungen bitten. –

+1

Fertig. Ich bin neu in stackoverflow. Danke übrigens. –

Antwort

-1

bekommen können Sie nur folgende Zeilen bewegen.

getPdfUrl: Funktion() { var that = this;

Wechsel zu

var that = this; getPdfUrl: function() {

es wird funktionieren, es gibt mehrere Möglichkeiten, dies zu erreichen. Aber jetzt können Sie das verwenden.

0

Ich habe Lösung durch den Kontext an initialize Bindung -

kf.Events.on('getPdfUrl', this.getPdfUrl.bind(this)) 
+0

Wenn 'kf.Events.on' [' Backbone.Events.on'] ist (http://backbonejs.org/#Events-on), kannst du auch 'kf.Events.on ('getPdfUrl', this .getPdfUrl, this) '. –

+0

Ja, kf.Events.on ist Backbone.Events.on. Vielen Dank und dieser ist nützlich. –

+0

Ich verstehe nicht, wie der betreffende Code davon verschieden ist, es sei denn, der obige Code wird in einem anderen Kontext ausgeführt, was aus dem fraglichen Code nicht klar ist, der wie gebrochener Code aussieht. Kurz gesagt, diese Frage und Antwort wird nur für Sie nützlich sein und nicht für andere. –

Verwandte Themen