如何替换underscorejs模板中的空选择器

时间:2013-09-15 18:14:17

标签: javascript backbone.js underscore.js

我有2个主干嵌套视图,用于呈现购物车的产品表。 每个视图都有自己的下划线模板。当购物车为空时,只有主视图将使用以下内容替换空div:"购物车为空"。不幸的是,以下解决方案无效:

<div class="container">    
    <div class="twelve columns">
        <table class="standard-table">
            <thead>
                 <tr>
                    <th>Remove</th>
                    <th>Product code</th>
                    <th>Name</th>
                    <th>Price</th>
                    <th>Quantity</th>
                    <th>Total</th>
                </tr>                  
            </thead>
          <tbody class="cart-table-body">       

          <% if (typeof(product_id)=="undefined") { %>
               <tr>
                  <td>cart is empty</td>                
               </tr>   
          <% } %>

         </tbody>

        </table>
   </div>
</div>

嵌套模板

    <td><i class="icon-remove-sign"></i></td>
    <td><%= product_id %></td>
    <td><%= product_name %></td>
    <td><%= price %></td>
    <td><%= quantity %></td>
    <td><%= price*quantity %></td>

1 个答案:

答案 0 :(得分:0)

我认为,您永远不会将product_id传递给第一个模板,这意味着它始终显示cart is empty。你应该传递一些标志变量,如products_lengthempty_cart,这样模板就可以检查购物车是否为空。

此外,通过这种方法,您需要一种方法来检查是否添加了第一个产品,在这种情况下,使用第一个添加的产品视图元素替换cart-table-bodycart is empty消息)的现有内部结构。然后追加以下元素的视图。