2014-01-21 1 views
0

У меня есть следующие JSON:dust.js эквалайзером помощник не работает

{ "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 и напечатать «нет курса» "если тип = 1 не найден

кто-нибудь знает, что я делаю неправильно

ответ

3

вы очень близки правильный синтаксис:.

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

Ваша ошибка состоит в том, что вы закрыли @eq помощник перед открытием else, но e else фактически является частью вспомогательного устройства @eq. То же самое относится к ?, # и любому другому месту, которое используется :else.

+0

Благодарим вас за ответ. я не думаю, что объяснил это достаточно. То, что я пытаюсь сделать, - это фильтровать json по ключевому значению и показывать только те результаты. если нет записей с ключевым значением (т. е. если я ввожу значение = 5, он должен показать «нет курса». Я попробовал ваше решение с ключевым значением = 1, и он дал мне этот результат: math1, science1, No course, Нет курса. Я ищу: ключевое значение = 1: math1, science1 или ключевое значение = 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} 

EDIT: После прочитав ваш ответ на другой ответ, я считаю, что мой пример даст тот же результат, на который вы не надеялись. Я немного смущен относительно того, что именно вы пытаетесь получить, но пользовательский помощник обычно обеспечивает гораздо большую гибкость с точки зрения получения там

 Смежные вопросы

  • Нет связанных вопросов^_^