论坛首页 Web前端技术论坛

[讨论]jsTemplate解析纯Array的方法

浏览 3054 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-12-22  
看了jsTemplate的官方文档好像是它的{for }{/for}只能迭代已知对象个数的数组:(官方的例子)
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" }
};

官方是这样访问的:
{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}

而如果我在远程返回一个数组:
var book = {{title:"java web开发详解", author:"孙鑫"},{title:"vc++深入详解", author:"孙鑫"}};

好像用官方的方法就不行了.

最后自己想了一个变通的办法就是
在javascript里加入
var jsbook = book;
jsbook.sbook=book;

然后用下面的方法访问:
{for bks in sbook}
     <tr><td>${bks.title}</td><td>${bks.author}</td>
         </tr>
 {forelse}
     <tr><td colspan="2">没有书</tr>
 {/for}

大家有没有其它比较优雅的办法讨论一下,谢谢
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics