看了jsTemplate的官方文档好像是它的{for }{/for}只能迭代已知对象个数的数组:(官方的例子)
[code]var data = {
products : [ { name: "mac", desc: "computer",
price: 1000, quantity: 100, alert:null },
{ name: "ipod", desc: "music player",
price: 200, quantity: 200, alert:"on sale now!" },
{ name: "cinema display", desc: "screen",
price: 800, quantity: 300, alert:"best deal!" } ],
customer : { first: "John", last: "Public", level: "gold" }
};[/code]
官方是这样访问的:
[code]
{for p in products}
<tr><td>${p.name|capitalize}</td><td>${p.desc}</td>
<td>$${p.price}</td><td>${p.quantity} :
${p.alert|default:""|capitalize}</td>
</tr>
{forelse}
<tr><td colspan="4">No products in your cart.</tr>
{/for}
[/code]
而如果我在远程返回一个数组:
[code]
var book = {{title:"java web开发详解", author:"孙鑫"},{title:"vc++深入详解", author:"孙鑫"}};[/code]
好像用官方的方法就不行了.
最后自己想了一个变通的办法就是
在javascript里加入
[code]
var jsbook = book;
jsbook.sbook=book;
[/code]
然后用下面的方法访问:
[code]
{for bks in sbook}
<tr><td>${bks.title}</td><td>${bks.author}</td>
</tr>
{forelse}
<tr><td colspan="2">没有书</tr>
{/for}[/code]
大家有没有其它比较优雅的办法讨论一下,谢谢
[code]var data = {
products : [ { name: "mac", desc: "computer",
price: 1000, quantity: 100, alert:null },
{ name: "ipod", desc: "music player",
price: 200, quantity: 200, alert:"on sale now!" },
{ name: "cinema display", desc: "screen",
price: 800, quantity: 300, alert:"best deal!" } ],
customer : { first: "John", last: "Public", level: "gold" }
};[/code]
官方是这样访问的:
[code]
{for p in products}
<tr><td>${p.name|capitalize}</td><td>${p.desc}</td>
<td>$${p.price}</td><td>${p.quantity} :
${p.alert|default:""|capitalize}</td>
</tr>
{forelse}
<tr><td colspan="4">No products in your cart.</tr>
{/for}
[/code]
而如果我在远程返回一个数组:
[code]
var book = {{title:"java web开发详解", author:"孙鑫"},{title:"vc++深入详解", author:"孙鑫"}};[/code]
好像用官方的方法就不行了.
最后自己想了一个变通的办法就是
在javascript里加入
[code]
var jsbook = book;
jsbook.sbook=book;
[/code]
然后用下面的方法访问:
[code]
{for bks in sbook}
<tr><td>${bks.title}</td><td>${bks.author}</td>
</tr>
{forelse}
<tr><td colspan="2">没有书</tr>
{/for}[/code]
大家有没有其它比较优雅的办法讨论一下,谢谢