我正在尝试编写一些 jquery 代码来从云帐户中检索服务器列表并将它们显示在表格中。当我加载我的页面时,我的 javascript 会执行并返回正确的 JSON,但是当我尝试使用 jquery 模板生成我的 html 时,我从未得到任何输出。谁能帮我弄清楚我的问题出在哪里?
Javascript 获取服务器数据
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
url: '../../api/server/getservers',
type: 'POST',
success: function (result) {
$('#serverTemplate').tmpl(result).appendTo('#serverTable');
},
});
});
</script>
Jquery 模板 Javascript
<script id="serverTemplate" type="text/x-jQuery-tmpl">
{{each servers}}
<tr>
<td>${status}</td>
<td>${name}</td>
</tr>
{{/each}}
</script>
HTML
<table>
<thead>
<tr>
<th>Status</th>
<th>Server Name</th>
</tr>
</thead>
<tbody id="serverTable">
</tbody>
</table>
JSON 示例
{
"servers": [
{
"progress": 100,
"id": 11111111,
"imageId": 1,
"flavorId": 1,
"status": "ACTIVE",
"name": "SERVER-1",
"hostId": "abcdefghijklmnopqrstuvwxyz",
"addresses": {
"public": [
"1.1.1.1"
],
"private": [
"2.2.2.2"
]
},
"metadata": {}
},
{
"progress": 100,
"id": 22222222,
"imageId": 2,
"flavorId": 2,
"status": "ACTIVE",
"name": "Server-2",
"hostId": "zxywufvslakdkdkdkdkdkdkdkdk",
"addresses": {
"public": [
"3.3.3.3"
],
"private": [
"4.4.4.4"
]
},
"metadata": {}
}
]
}
- jQuery 版本 1.5.1
- jQuery-tmpl 测试版 1
最佳答案
我通过更改成功函数并将 JSON 的显式解析添加到数组来解决了这个问题。
var servers = jQuery.parseJSON(result);
$('#serverTemplate').tmpl(servers).appendTo('#serverTable');
关于c# - 如何将 jquery 模板与 JSON 数据一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6508902/