2017-11-16 1 views
-1

Ich habe nicht den Weg gefunden, um lang.hitch in XMLHttpRequest zu verwenden. Gibt es eine Idee dafür?mit lang.hitch für xmlhttprequest

var xml = new XMLHttpRequest(); 
 
xml.onreadystatechange(lang.hitch(this,function() 
 
      { 
 
       if (xml.readyState==4 && xml.status==200) 
 
       { 
 
       var t=xml.response; 
 
       this.method(); 
 
       } 
 
      } 
 
      )); 
 
xml.open('GET',someURL, false); 
 
xml.send();

+0

was ist los hier? Könnten Sie Ihr Problem, Fehler! –

+0

Dieser Code sollte funktionieren. Einfach den Fehler oder deine echte Frage posten. –

Antwort

0

In Dojo gibt es Klassenkonzept. Wir können Methoden in der Klasse definieren. Dann wird die Codearchitektur klar sein. Für den Ereignisantwortteil wird der Operationsbereich in der Antwortfunktion eingeschränkt und das Klassenszenario verliert.

In diesen Tagen fand ich eine Lösung nicht auf Dojo lang.hitch abhängen, die Art und Weise ist: Im Hauptszenario setzen diese auf eine Variable von: var Instanz = this; Wenn in der asynch-Methode (Antwort) die Methode im Hauptszenario aufgerufen wird: instance.SomeMethod();

sendXMLRequest: function() { 
    var xml = new XMLHttpRequest(); 
    xml.responseType = "json"; 
    xml.open('GET', url, true); 
    var instance = this; 
    xml.onload = function (e) { 
      if (this.status == 200 || this.status == 304) { 
      instance.SomeMethod(); 
        } 
      } 
    xml.send(); 
    }, 
SomeMethod:function(){ 
    //do something. 
} 
Verwandte Themen