class Ajax {
url: string;
xmlData: string;
mode: bool;
response: string;
objHttpReq:any;
constructor (postUrl: string, postXml: string, postMode: bool) {
this.url = postUrl;
this.xmlData = postXml;
this.mode = postMode;
this.objHttpReq = new XMLHttpRequest();
this.objHttpReq.mode = this.mode;
this.objHttpReq.onreadystatechange = this.OnRStateChange;
this.objHttpReq.open("Post", this.url, this.mode);
this.objHttpReq.send(this.xmlData);
}
OnRStateChange(){
if (this.readyState==4 && this.status==200)
//here this refers to Ajax
{
//alert(xmlhttp.status);
if(this.mode == false)
{
alert(this.responseText);
}
else
{
alert(this.responseText);
}
}
}
}
遵守上面的代码
var Ajax = (function() {
function Ajax(postUrl, postXml, postMode) {
this.url = postUrl;
this.xmlData = postXml;
this.mode = postMode;
this.objHttpReq = new XMLHttpRequest();
this.objHttpReq.mode = this.mode;
this.objHttpReq.onreadystatechange = this.OnRStateChange;
this.objHttpReq.open("Post", this.url, this.mode);
this.objHttpReq.send(this.xmlData);
}
Ajax.prototype.OnRStateChange = function() {
if(this.readyState == 4 && this.status == 200) {
//here this refers XMLHttpRequest object – works fine
if(this.mode == false) {
alert(this.responseText);
} else {
alert(this.responseText);
}
}
};
return Ajax;
})();
问题上面打字稿代码表明错误的JavaScript,因为阿贾克斯类没有readyState的,状态和性能的responseText。在TypeScript中编写Ajax类的正确代码应该是什么?
2013-01-21
skgyan
+0
你摸不着头脑? –