我使用Jquery模板填充表。在这个模板中,我需要通过ajax调用来使用json文件来填充。
$(document).ready(function() {
var clientData;
$.get("/webpro/webcad/lngetusuario", function(data, status){
clientData = data;
alert(clientData);
});
$("#clientTemplate").tmpl(clientData).appendTo("tbody");
});
<script id="clientTemplate" type="text/html">
<tr><td> ${usuario} </td><td> ${nome} </td><td> ${setor} </td></tr>
//{{tmpl($data) "#phoneTemplate"}}
</script>
网址&#39; / webpro / webcad / lngetusuario&#39;生成json文件。
这是代码。我不明白这一点,因为在$ .get语句中,变量clientData具有正确的值json,但在$ .get语句之外(在document.ready上)变量clientData为空。
任何人都可以帮我这个吗?
答案 0 :(得分:0)
这是一个回调&#34;功能&#34;。
代码不按您认为的顺序运行:
$(document).ready(function() {
var clientData;
$.get("/webpro/webcad/lngetusuario", function(data, status){
clientData = data; // This will be run when a response has been received from the server
alert(clientData);
});
// This will run without waiting any reply from the server
$("#clientTemplate").tmpl(clientData).appendTo("tbody");
});
这是你想要的:
$(document).ready(function() {
var clientData;
$.get("/webpro/webcad/lngetusuario", function(data, status){
clientData = data;
alert(clientData);
$("#clientTemplate").tmpl(clientData).appendTo("tbody");
});
});
答案 1 :(得分:0)
$.get()
是异步的。因此$().tmpl()
在$.get()
完成之前执行,导致clientData
为空。要解决此问题,请将$().tmpl()
置于$.get()
回调中。这将确保仅在get请求完成时创建模板。像这样
$.get("/webpro/webcad/lngetusuario", function(data, status){
clientData = data;
alert(clientData);
$("#clientTemplate").tmpl(clientData).appendTo("tbody");
});