Я использую JsRender для рендеринга шаблона на стороне клиента. Однако я не могу использовать тег цикла for для повторения html-части блока, потому что он, похоже, принимает только массивы или объекты. Вместо этого мой JSON возвращает переменную, которая является числом (сколько раз я должен повторить блок). Как я могу повторить html N раз, используя JsRender?
Простой цикл for с JsRender
Ответы (2)
Я не уверен, что JsRender предоставляет эту функциональность из коробки. Вы можете написать свой собственный тег, как здесь: Пример сценария: Создание пользовательских помощников для перебора полей
$.views.helpers({
getFields: function( count ) {
var fieldsArray = [];
for (var i=0; i < count; i++) {
fieldsArray.push({});
}
return fieldsArray;
}
});
Демонстрация: http://jsfiddle.net/6UeZC/
person
webdeveloper
schedule
24.10.2012
Я расширил ответ @webdeveloper, так как нет необходимости в дополнительном цикле, потому что массивы javascript работают таким образом, что вам нужно только определить последний элемент
$.views.helpers({
repeatLoop: function( count ) {
if (!count) return [];
var repeat = [];
repeat[count-1] = {};
return repeat;
}
});
А затем использовать как
@{{for ~repeatLoop(10)}}
{{:#index+1}}
@{{/for}}
person
user1612250
schedule
27.02.2016
<div>Something that I want to write</div>
. Затем вы можете поместить всю эту длинную строку в массив. Один блок html кода эквивалентен 1 массиву. Затем повторите массив. - person Franz Noel   schedule 24.10.2012