很抱歉,如果这个问题重复,但我无法解决其他解决方案中的问题。
我在主索引中包含的sepate文件中有这段代码:
var getSuggestedData = {
serviceURL: $("input[name=suggestedServices]").val(),
dataR:"",
doRequest:function(){
//request data to controller
$.ajax({
url:this.serviceURL,
success:function(msg){
this.dataR = msg;
}
})
}
}
当我试图以这种方式从我的索引中获取变量“dataR”时,它是未完成的!请问,有人可以帮助我吗?
$().ready(function() {
getSuggestedData.doRequest();
alert(getSuggestedData.dataR);
});
提前谢谢!
答案 0 :(得分:0)
您无法访问dataR对象的原因是因为它与success方法返回的结果不在同一上下文中。
一种技术是在变量中保存对此的引用,如下所示:
var self = this;
using the jquery library!
$(this.button).bind('click',{self:this},function(event)
{
var that = event.data.self;
alert(that.num);
});
您还可以查看下面的帖子,我在其中详细介绍了“this”关键字。
答案 1 :(得分:0)
如果记忆对我有用......
this.dataR = msg;
可能需要
getSuggestedData.dataR = msg
'this'引用将提供给jQuery的对象,需要引用原始对象。我忘记了你是否可以直接通过它的名字来访问它,或者如果你需要使用其他方法,请告诉我它是否有效。