2015-11-11 29 views
0

我使用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> 

url'/ webpro/webcad/lngetusuario'會生成json文件。

這是代碼。我不明白這一點,因爲在$ .get語句中,變量clientData具有正確的值json,但在$ .get語句之外(在document.ready上)變量clientData是空的。
任何人都可以幫助我嗎?

回答

0

這是一個回調「功能」。

的代碼是不是在爲了運行你認爲:

$(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"); 
    }); 

}); 
+0

我試過之前問,不是這個問題。 –

+0

也許你的問題實際上是將服務器響應轉換爲JSON,然後再將其用於模板 – oliverpool

0

$.get()是異步的。所以$().tmpl()$.get()完成之前執行,導致clientData爲空。爲了解決這個問題,在$.get()回調中放$().tmpl()。這將確保只有在獲取請求完成時纔會創建您的模板。像這樣

$.get("/webpro/webcad/lngetusuario", function(data, status){ 
    clientData = data; 
    alert(clientData); 
    $("#clientTemplate").tmpl(clientData).appendTo("tbody"); 
}); 
+0

我在詢問之前嘗試並且不是這個問題。 –

相關問題