我有一个Javascript对象,它对服务器进行jquery ajax调用以填充其中一个属性:
function Busqueda(contenedor){
var datosPost = "someData";
var resultados = undefined;
var that = this;
this.buscar = function(){
jQuery.ajax({
type: "POST",
dataType: "json",
url: "phpFile.php",
data: datosPost,
success: function (data){
if(data.error != 0){
alert(data.errorTxt);
} else {
that.resultados = data.resultados;
}
}
});
}
}
ajax调用应填充属性“resultados”。但是,在运行“buscar”方法之后,resultados仍未定义。
另外,我在success方法中调试了“that.resultados”,这是Busqueda的属性。
发生了什么事?
答案 0 :(得分:1)
你为什么要使用那个.resultados?你的意思是“这个”?它应该只是“resultados”
function Busqueda(contenedor){
var datosPost = "someData";
var resultados = undefined;
var that = this;
this.buscar = function(){
jQuery.ajax({
type: "POST",
dataType: "json",
url: "phpFile.php",
data: datosPost,
success: function (data){
if(data.error != 0){
alert(data.errorTxt);
} else {
resultados = data.resultados;
}
}
});
}
}
答案 1 :(得分:0)
你永远不会展示你如何使用它。你正确地创建了一个实例吗?
var o = new Busqueda();
// ... after the ajax success
console.log(o.resultados)
如果您不使用new
,那么this
(和that
)将是window
,而不是o
。