我没有抓住在XMLHttpRequest中使用lang.hitch的方法。对此有什么想法吗?
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 :(得分:0)
在道场中有阶级概念。我们可以在类中定义方法。然后代码架构将是清晰的。对于事件响应部分,操作范围将限制在响应函数中并丢失类场景。
这些天我找到了一个不依赖于dojo lang.hitch的解决方案,方法是: 在主场景中,通过以下方式将其设置为变量: var instance = this; 在asynch方法(响应)中,如果通过以下方式调用主场景中的方法: 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.
}