我有以下代码来执行和显示ajax请求。
在这里,我想将ajax returened html注入mainCanvas。尝试上下文“this
”但不起作用。你能分享一些想法吗?
我也不想将上下文设置为“this.mainCanvas
”因为我必须在其他元素中注入html。
var RequestController = {
mainCanvas: $("#mainCanvas"),
panelCanvas: $("#subDiv"),
Start:function(){
$.ajax({
url: "http://myserverurl.com",
context: this,
success:function(data){
this.mainCanvas.html(data);
}
});
}
};
答案 0 :(得分:1)
在渲染之前,您似乎正试图将html放入潜水中。在DOM完全加载时始终注入html。您可以在$(document).ready()
函数中查看此内容。
答案 1 :(得分:1)
尝试这样的事情:
created: function() {
var vueInstance = this;
$.ajax({
url: urls.api.getStates,
context: vueInstance,
type: 'GET',
success: function (response) {
$.each(response, function (stateCodeId, name) {
var stateObj = new Object();
stateObj.id = stateCodeId;
stateObj.name = name;
vueInstance.states.push(stateObj);
});
},
error: function (response) {
console.log(response);
$('#errorMsg').show();
$("#errorMsg").focus();
this.ErrorHeader = "Error(s)";
this.ErrorMessage = "<li>An error occurred while retrieving the list of schools. Please try again later.</li>";
}
})
}
刚刚花了半个小时处理这个问题,我知道线程已经老了但是我希望这对某人有所帮助!
答案 2 :(得分:0)
var RequestController = {
mainCanvas : $("#mainCanvas"),
panelCanvas : $("#subDiv"),
Start : function() {
$.ajax({
url : "http://myserverurl.com",
context : this,
success : $.proxy(function(data) {
this.mainCanvas.html(data);
}, this)
});
}
};