2014-01-03 8 views
3

Как я могу выбрать выбранную группу/список объектов только из моих данных json? Например, я просто хочу, чтобы петли "ID2" в приведенном ниже примере,jsrender/jsviews: как закодировать выбранный список объектов?

JSON,

{ 
"ID1": { 
     "items":{ 
      "0": "VALUE1", 
      "1": "VALUE2", 
      "2": "VALUE3", 
      "4": "VALUE4" 
     } 
    }, 
"ID2": { 
     "items": { 
      "0": "VAL2-1", 
      "1": "VAL2-2", 
      "2": "VAL2-3" 
     } 
    } 
} 

JS,

myTmpl2 = $.templates("#myTmpl2"); 
    $("#result2").html(
     myTmpl2.render(data2) 
    ); 

шаблон,

<script id="myTmpl2" type="text/x-jsrender"> 
{{props #data}} 
    <tr> 
      <td>{{:key}}</td> 

       {{for prop}} 
        {{props items}} 

        <td>{{>key}} - {{>prop}}</td> 

        {{/props}} 
       {{/for}} 


      </tr> 
{{/props}} 
</script> 

результат ,

ID1  0 - VALUE1 1 - VALUE2 2 - VALUE3 4 - VALUE4 
ID2  0 - VAL2-1 1 - VAL2-2 2 - VAL2-3 

В результате я после

результат,

ID2  0 - VAL2-1 1 - VAL2-2 2 - VAL2-3 

Возможно ли это?

и btw, что делает #data означает в {{props #data}} (я использую его, но не понимаю его!)?

Могу ли я это сделать, если я хочу выбрать только группу - {{props #data.ID2}} ??

ответ

4

#data - текущий элемент данных (или контекст данных, если хотите). См. http://www.jsviews.com/#assigntag для примера, иллюстрирующего это.

Фактически #data не подходит для #view.data и #view является текущим «представлением». См. Этот пример, например: http://www.jsviews.com/#samples/jsr/paths.

Пути данных, такие как foo.bar, начинаются с текущего элемента данных, поэтому #data.foo.bar и foo.bar эквивалентны.

В вашем образце выше вы можете перейти прямо к ID2 объекта, написав:

<tr> 
    <td>ID2</td> 
    {{props ID2.items}} 
     <td>{{>key}} - {{>prop}}</td> 
    {{/props}} 
</tr> 

Другие варианты:

{{for ID2}} 
    <tr> 
     <td>ID2</td> 
     {{props items}} 
      <td>{{>key}} - {{>prop}}</td> 
     {{/props}} 
    </tr> 
{{/for}} 

или:

{{props #data}} 
    {{if key === "ID2"}} 
     <tr> 
      <td>{{:key}}</td> 
      {{for prop}} 
       {{props items}} 
        <td>{{>key}} - {{>prop}}</td> 
       {{/props}} 
      {{/for}} 
     </tr> 
    {{/if}} 
{{/props}} 
+0

спасибо за ответ! :) – laukok