2013-04-18 4 views
0

У меня есть некоторые данные, которые я хочу вывести с помощью jsViews. Дело в том, что объекты в массиве данных могут иметь различный набор атрибутов/столбцов на основе некоторых условий. Я сохраняю эти имена атрибутов в настройках и хочу иметь возможность распечатывать содержимое данных со всеми дополнительными столбцами, хранящимися в массиве параметров. Например:jsViews - отображение пользовательских свойств в списке объектов

data = { 
    view_settings: [{ 
      property_name: "prop1" 
     }, 
     { 
      property_name: "prop2" 
     } 
    ], 
    object_list: [{ 
      id: "180", 
      name: "test1", 
      prop1: "test-prop-1", 
      prop2: "test-prop-2" 
     } 
    ] 
} 

То, что я хотел бы добиться того, чтобы отобразить содержимое object_list, используя свойство листинг из view_settings. Возможно ли это с помощью jsViews?

ответ

1

Лучший способ найти ответ на ваш вопрос - сначала спросить его, понять его (метод резиновой утки), а затем найти ответ.

Для этого нам нужно дважды переименовать объекты. Вот мой упрощена jsViews код шаблона, который будет корректно отображаться данными, например, от моего вопроса:

<script id="template1" type="text/x-jsrender"> 
    <table> 
     <thead> 
      <tr> 
       <th>Name</th> 
       {{for view_settings}} 
       <th>{{>property_name}}</th> 
       {{/for}} 
       <th></th> 
      </tr> 
     </thead> 
     <tbody> 
      {{for object_list ~view_settings=#data.view_settings}} 
      <tr> 
       <th>{{>name}}</th> 
       {{for ~view_settings ~object=#data}} 
       <th>{{:~object[property_name]}}</th> 
       {{/for}} 
       <th></th> 
      </tr> 
      {{/for}} 
     </tbody> 
    </table> 
</script> 

Надежда это щадит чье время;)

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