2011-01-28 76 views
0

我試圖從{{if}}塊中使用JQuery.tmpl()查詢字符串值,並且由於某種原因它不工作。JQuery tmpl在我的if塊中無法按預期工作

我正在使用KnockoutJS呈現具有許多不同類型的面板的儀表板。每個面板都有一個Type屬性,它會告訴我它是哪種類型的面板。所以,這裏是什麼我的數據可能看起來像一個(很簡單)的概念:

var data = {"Panels": [ 
    {"Type": "A", ... }, 
    {"Type": "B", ... }, 
    {"Type": "C", ... }, 
]}; 

這裏是一個將呈現取決於Type不同div標籤模板:

<script id="template" type="text/x-jquery-tmpl"> 
    {{if Type == "A"}} 
    <div>A</div> 

    {{else Type == "B"}} 
    <div>B</div> 

    {{else Type == "C"}} 
    <div>C</div> 

    {{else}} 
    <div>'${Type}' is invalid!</div> 

    {{/if}} 
</script> 

然而,我總是獲取輸出是這樣的:

<div>'A' is invalid!</div> 
<div>'B' is invalid!</div> 
<div>'C' is invalid!</div> 

如何檢查的字符串屬性(即Type)使用{{if ..}} block?

在此先感謝!

回答

0

這是你的樣品中的jsfiddle工作副本:
http://jsfiddle.net/rniemeyer/cnzeg/

有什麼關於從您要什麼我的樣本不同?

,可能會導致在IE中的問題,只有另一件事是你的面板陣列後面的逗號這裏:

var data = {"Panels": [ 
    {"Type": "A", ... }, 
    {"Type": "B", ... }, 
    {"Type": "C", ... }*,* 
]}; 

不會造成您看到雖然問題很可能不是在你的實際代碼。

+0

謝謝你。我更新瞭解決方案以顯示我認爲我遇到的問題:http://jsfiddle.net/TrailHacker/cnzeg/2/ – Luc 2011-01-28 23:21:06