Вы можете использовать такие функции, как Math.floor()
или Math.ceil()
в шаблоне JsRender, но вам нужно получить к ним доступ через помощников (или через функции в ваших данных / View Model). Например, вы можете определить ~colcount()
помощник:
colcount: function(val){
return Math.ceil(val.length/3);
}
, к которому вы могли бы получить доступ как
{{for Results start=~colcount(Results) end=~colcount(Results)*2}}
Так что-то вроде этого должно отобразить ваш вид сетки из трех столбцов:
<ul>
{{for Results start=0 end=~colcount(Results)}}
<li>{{:}}</li>
{{/for}}
</ul>
<ul>
{{for Results start=~colcount(Results) end=~colcount(Results)*2}}
<li>{{:}}</li>
{{/for}}
</ul>
<ul>
{{for Results start=~colcount(Results)*2 end=Results.length}}
<li>{{:}}</li>
{{/for}}
</ul>
В качестве альтернативы вы можете даже передать сам объект Math в качестве помощника, например:
var helpers = {
math: Math,
...
};
var html = myTmpl(data, helpers);
, а затем использовать его непосредственно в выражениях шаблонов, таких как "
{{for start=~math.ceil(Results.length/3) ... }}}