2011-02-23 82 views
2

如何在jQuery模板中使用IF語句?在模板中使用If條件

這裏是我的模板:

<script type="text/html" id="attachmentListTemplate"> 
{{if $item.current_cmt_id == id }} 
    <li> 
     <a href="${link}" class="fancyIFrame clearfix">${title}</a> 
    </li> 
{{/if}} 
</script> 

其中ID爲基本${id}並正在通過數據綁定(通過KnockoutJS)通過。沒有哪一個IF語句輸出很好,就像這樣:${$item.current_cmt_id}

下面是數據綁定(搭載KnockoutJS):

<ul data-bind='template: { name: "attachmentListTemplate", foreach: attachmentsModel.convAttachments, templateOptions: {current_cmt_id: <%=comment.id%>} }'> </ul> 

任何建議,爲什麼如果sttatement不工作?我是否正確比較了這兩種情況?

+0

您還使用服務器端語言嗎?如果是這樣,源是否顯示一個整數? (因爲<%= comment.id%>我問...) – 2011-02-23 23:41:20

+0

是的,它會在瀏覽器中呈現爲INT,111 – AnApprentice 2011-02-23 23:44:34

回答

6

假設id是可觀察到的,你需要調用它作爲一個功能,而不是治療是作爲屬性。請嘗試以下操作:

{{if $item.current_cmt_id == id()}} 
+0

這樣做!你是我的英雄 - 謝謝! – AnApprentice 2011-02-24 00:26:43

+0

良好的通話,這可以很難追查! – 2011-02-24 02:02:59

+0

@AnApprentice:隨意標記此答案爲接受,如果它的訣竅:) – 2011-02-24 11:47:12

0

你需要用引號包圍<%= comment.id%>嗎?

 <ul data-bind='template: { name: "attachmentListTemplate", foreach: attachmentsModel.convAttachments, templateOptions: {current_cmt_id: "<%=comment.id%>"} }'> </ul> 
+0

這是工作得很好。一些與jQuery模板,我不知道如何做條件 – AnApprentice 2011-02-24 00:20:28

+0

我見過一些模板系統使用<% %>作爲佔位符,所以我想知道這是否也是如此。可能不會。 – 2011-02-24 00:30:01