Можно ли сделать больше итераций, чем количество элементов?

#jsrender

#jsrender

Вопрос:

недавно я начал использовать jsrender, моему клиенту нужна таблица с 5 строками, если в ней всего 3 элемента данных, таблица будет заполнена 3 строками, а остальные 2 останутся пустыми.

когда я использую jsrender, я использовал шаблон, подобный следующему,

 <script id="TmpOperation" type="text/x-jsrender">
 <tr>
  <td>{{:name}}</td>
 </tr>
</script>
 

Моя проблема в том, что он не будет генерировать 5 строк, если элемент данных меньше 5, как я могу генерировать пустые строки таблицы?

=====обновить

для моих данных:

 data=[
    {name:'aaa'}, 
    {name:'bbb'}, 
    {name:'ccc'}
]
 

код для рендеринга:

 var template = $.templates("#TmpOperation");

var html = template.render(data);

$("#tbody_report").html(html);
 

html — код:

         <table >
            <tbody id="tbody_report">

            </tbody>
        </table>
 

Теперь, когда в нем всего 3 элемента, будет таблица с 3 строками, но мне нужно 5 строк (3 строки заполнены, а остальные 2 пустые), спасибо.

Комментарии:

1. Мы должны были бы увидеть код, который генерирует элементы данных, чтобы иметь возможность прокомментировать это.

Ответ №1:

Самым простым способом было бы добавить несколько пустых объектов в конец вашего data массива либо на стороне сервера, либо на стороне клиента. Вот некоторый JavaScript, который будет работать после того, как вы извлекли свой data и передали его в свой шаблон.

 for (var i = 5 - data.length; i > 0; i--) { 
    data.push({name: ''});
}
 

Комментарии:

1. Возможно, потребуется что- то добавить туда, возможно amp;nbsp; , or amp;#8203; (пробел нулевой ширины), чтобы сохранить согласованность ячеек таблицы.