2015-10-09 39 views
0

我想創建一個表格,其中id單元格應該跨過基於sessions數組長度的3列,現在因爲id單元格在循環內部,所以當我只希望它具有一次特徵時,它將獲得3次輸出。是否可以在模板中設置某些內容來執行此操作?防止模板循環中的標籤多次輸出?

JS

<table> 
    <tbody class="js-output"> 
     <script type="text/html" id="tmpl"> 
      <% _.each(sessions, function(session) { %> 
       <tr> 
        <td rowspan="<%- session.length %>"><%- id %></td> 
        <td><%- session %></td> 
        <td><select name="" id=""></select></td> 
       </tr> 
      <% }) %> 
     </script> 
    </tbody> 
</table> 

小提琴:https://jsfiddle.net/egks4ys1/

硬編碼的佈局:https://jsfiddle.net/egks4ys1/1/

+0

我完全不明白問題,但你是廁所嗎?國王爲這樣的事情:https://jsfiddle.net/9fzq1edz/? – sailens

+0

這裏是我需要實現的硬編碼示例佈局https://jsfiddle.net/egks4ys1/1/ – styler

+0

替換<% - <%= – Anonymous0day

回答

2

下面是來自其元素的其餘部分分開處理第一屆元素的模板。

<table> 
    <tbody class="js-output"> 
     <script type="text/html" id="tmpl">   
      <tr> 
       <td rowspan="<%- sessions.length %>"><%- id %></td> 
       <td><%- _.first(sessions) %></td> 
       <td><select name="" id=""></select></td> 
      </tr> 
      <% _.each(_.rest(sessions), function(session) { %> 
       <tr> 
        <td><%- session %></td> 
        <td><select name="" id=""></select></td> 
       </tr> 
      <% }) %> 
     </script> 
    </tbody> 
</table> 

小提琴:https://jsfiddle.net/egks4ys1/6/

2

我都利用indexif構建象下面這樣:

<table> 
<tbody class="js-output"> 
    <script type="text/html" id="tmpl"> 
     <% _.each(sessions, function(session,i) { %> 
      <tr> 
       <% if(i!=0){ %> 
       <td><%- session %></td> 
       <td><select name="" id=""></select></td> <%}%> 

       <% if(i==0){%> <td rowspan="<%- sessions.length %>"><%- id %></td> 
       <td><%- session %></td> 
       <td><select name="" id=""></select></td><%}%> 
      </tr> 
     <% }) %> 
    </script> 
</tbody> 

的jsfiddle:https://jsfiddle.net/egks4ys1/14/

+0

Good call,這可以進一步簡化爲:https://jsfiddle.net/egks4ys1/15/ –