2014-01-21 95 views
0

我有以下的JSON:dust.js EQ助手不工作

{ "list": [ 
    { "course": "math", "type": "1" }, 
    { "course": "science", "type": "1" }, 
    { "course": "gym",  "type": "2" }, 
    { "course": "art",  "type": "3" } 
] 
} 

這裏是我的模板:

{#list} 
    {@eq key=type value="1"} 
    {course} {type} 
    {/eq} 
    {:else} 
    no course, 
{/list} 

的{:}其他不工作。它打印:沒有課程,沒有課程,沒有課程,沒有課程,(打印它的次數是數組中的記錄數量

我想顯示所有類型爲1的課程並打印「no course 「如果沒有類型= 1被發現

人知道我在做什麼錯

回答

3

您是非常接近正確的語法爲:?

{@eq key=type value="1"} 
    {course} {type} 
{:else} 
    No course 
{/eq} 

你的錯誤是,你已經關閉了@eq幫助者在打開else之前,但是e else實際上是@eq幫手的一部分。 ?,#以及使用:else的任何其他地方也是如此。

+0

謝謝你的回覆。我不認爲我足夠解釋它。我想要做的是按鍵值過濾json,並只顯示那些結果。如果沒有關鍵值的記錄(即:如果我輸入值= 5,它應該顯示「no course」。我試着用key value = 1的解決方案,它給了我這個結果:math1,science1,No course,沒有課程,我在找的是:key value = 1:math1,science1或key value = 7沒有課程,我不知道我是否需要@if幫手。 – user2062455

0

假設你已經通過,現在解決了這一點,但一個很好的解決方案可能是寫自己的幫手:

dust.helpers.course_filter = function(chunk, context, bodies, params){ 
    if(params.key == 1){ 
    bodies.block(chunk, context); 
    } else { 
    bodies.else(chunk, context); 
    } 
}; 

然後在你的模板:

{#list} 
{@course_filter key=type} 
    {course} {type} 
{:else} 
    No course 
{/course_filter} 
{/list} 

編輯: 後閱讀你對另一個答案的回答,我相信我的例子會給出你不希望的相同結果。我有點困惑,究竟你想要得到什麼,但一個定製的幫手通常提供更多的靈活性,以達到那裏