2011-06-29 49 views
3

我有一個jquery模板的設置是這樣的:條件語句中的jQuery模板

<script id='tmpl-video_list' type='text/x-jquery-tmpl'> 
<li> 
    <a href='${url}'><br/> 
     <span class='image_border'> 
      <span class='image_container'> 
       <img src='${thumb}' alt='' title='' /> 
      </span> 
     </span> 
    </a> 
    <div class='search_block'> 
     <span class='name'>${caster_name}</span> 
      <a href='${url}'> 
       <span class='search_title'>${title}</span> 
      </a> 
    </div> 
</li> 

而且數據我送看起來是這樣的:

{ 
    _index:i, 
    url: url, 
    thumb: thumb, 
    name: name, 
    title: title 
}

所有這一切工作大。我的問題是,如果有辦法在那裏放置一個條件。我瞭解{{如果}}和如在文檔中闡明的,但我想知道,如果你可以做這樣的事情:

{{if ${_index}+1 % 5 == 0}} class='last_search_video' {{/if}}

我試過了,它沒有工作。其實我不喜歡我的對象_index,但我想我會給予一個變化。我在想當前的索引被傳遞到模板的循環中,但我不知道。

我沒有嫁給jQuery的模板插件,所以如果有人知道一個更好的插件,請隨時建議另一個。

+0

什麼是你正在嘗試做的,到底是什麼? –

回答

2

我其實不喜歡_index我 對象

好消息!你並不需要它。適應this excellent question and answer你的問題,你需要做一些事情,使查找當前項目的索引你呈現更容易:

  1. options參數添加一個函數來.tmpl(),您可以使用檢索目前項目的索引:

    $("#tmpl-video_list").tmpl(data, { 
        getIndex: function(item) { 
         return $.inArray(item, data); 
        } 
    }); 
    
  2. 修改你的模板,以充分利用該功能:

    <script id='tmpl-video_list' type='text/x-jquery-tmpl'> 
        <li {{if $item.getIndex($item.data) + 1 % 5 === 0 }} class='last_search_video' {{/if}}> 
         <!-- etc., etc., --> 
        </li> 
    </script> 
    

下面是一個簡化的工作示例:http://jsfiddle.net/gsd6D/

+0

Siiiick,其實我剛纔讀的中,我應該在第一時間做了文檔。正是我期待的那麼好,乾淨,謝謝 – locrizak

0

您不必爲「模板化」的_index{{if}}財產。你可以只寫

{{if (_index + 1) % 5 == 0}} class='last_search_video' {{/if}} 
+0

這不起作用。爲什麼會這樣,因爲_index值不會被找到。 – locrizak

+0

@locrizak:好吧,我假設你是把它變成你的模板,其中_index將被定義,並在運行時來自您的數據。 – jmbucknall

+0

正確的,但即時通訊假設,如果你想使用的東西從你的數據,你需要用$ {}這樣的正則表達式可以把它撿起來調用它。我嘗試過但沒有運氣。你還有其他建議嗎? – locrizak