2013-03-13 2 views
0

Есть ли способ выбрать определенные элементы в представлении JSON на основе строкового значения подэлемента, используя версию dust.js от Linked In? Например, если у меня был этот вид JSON:Фильтрация элементов в секции с помощью dust.js на основе значения подэлемента json

{ 
    people: [ 
     { name: "Fred", type: "a" }, 
     { name: "Harry", type: "a" }, 
     { name: "Linda", type: "a" }, 
     { name: "Mary", type: "b" }, 
     { name: "Bob", type: "b" }, 
     { name: "Joey", type: "b" } 
    ] 
} 

, и я хотел, чтобы этот вывод:


Фред
Гарри
Линда

как бы шаблон отличается от этой простой?

{#people} 
    <br/>{name} 
{/people} 

Это будет выполнено в браузере.

ответ

0

Существует способ сделать это, но вам нужно включить dust helpers:

{#people} 
    {@eq key=type value="a"} 
    {name} 
    {/eq} 
{/people} 

Несколько вещей, чтобы отметить:

  1. Мы используем хелпер @eq. Не используйте помощник @if, даже если он доступен (он имеет проблемы с безопасностью и производительностью).
  2. При ссылке на значение внутри помощника вам не нужно обертывать его в { }. В этом примере мы используем key=type, а не key={type} или key="{type}".
+0

Спасибо. Это действительно сработает, но оно будет также перебирать все элементы. Я закончил использование JSPath, чтобы получить подмножество узлов с их встроенными операторами сравнения. – Jim