2011-12-14 126 views
6

我想在使用嵌套jQuery模板的表中显示JSON数据。嵌套jQuery模板

我可以让它工作到第一级别。

这里是我想要达到一个例子:

一个Client有订单和Fullname的列表。这使用clientTemplateorderTemplate显示。到目前为止,一切正常。

现在,Order有一个列表Products。所以我从orderTemplate内拨打productTemplate。而数据未绑定:(

我猜这是因为我传递$dataproductTemplate$data指的是顶层对象(Client),但我如何通过当前的订单呢?

这里是我的模板:

<script id="clientTemplate" type="text/x-jquery-tmpl"> 
    <tr><td>Fullname</td></tr> 
    <tr><td>${Fullname}</td></tr>   
    <tr> 
     <td> 
      <table> 
      <tr><td>Order Id</td><td>Order Date</td></tr> 
      {{tmpl($data) "#orderTemplate"}}    
      </table> 
     </td> 
    </tr> 
    </script> 

    <script id="orderTemplate" type="text/x-jquery-tmpl"> 
    {{each Orders}} 
     <tr> 
      <td>${Id}</td> 
      <td>${DateOrder}</td>        
     </tr> 
     <tr> 
     <td> 
      <table> 
      <tr><td>Product Id</td><td>Quantity</td></tr> 
      {{tmpl($data) "#productTemplate"}} 
      </table 
     </td> 
     </tr> 
    {{/each}} 
    </script> 

    <script id="productTemplate" type="text/x-jquery-tmpl"> 
    {{each ProductList}} 
     <tr> 
      <td>${Id}</td> 
      <td>${Quantity}</td> 
     </tr> 
    {{/each}} 
    </script> 

回答

3

在一个{{each}}的情况下,你必须使用$value,而不是$data指迭代项目:

{{tmpl($value) "#productTemplate"}} 
+0

我不知道!非常感谢帮助:) – Sam 2011-12-14 19:53:00