我有一个传递给jsRender的数组,如下所示:
var myArray = [{name: Arun},
{name: Mohan},
{name: Deepak}
]
现在我将它传递给我创建的渲染模板。但在其中我需要为数组的前2个元素应用for循环,以便我可以将其设置为与第三个不同的样式。 如何在jsrender for循环中找到上述arrray的长度?
答案 0 :(得分:2)
从{{for someArray}}
内部,您可以使用{{:#get("array").data.length}}
获取数组的长度,如下所示:
{{for someArray}}
{{:name}} (array length: {{:#get("array").data.length}}...)
{{/for}}
或者,您可以将数组作为上下文模板参数传递,并使用{{:~array.length}}
,如下所示:
{{for someArray ~array=someArray}}
{{:name}} (array length: {{:~array.length}}...)
{{/for}}
要以不同方式格式化数组中的某些项目,您只需使用{{if ...}}
,如:
{{for someArray}}
{{if #index<2}} ... {{else}} ... {{/if}}
{{/for}}
或者您可能希望查看创建自定义{{range}}
标记或类似内容,以迭代索引子集,如http://www.jsviews.com/#samples/jsr/tags/extend-for和http://www.jsviews.com/#samples/tag-controls/range。
答案 1 :(得分:2)
你可以这样做
{{for myArray ~len=myArray.length}}
{{if #index != ~len-2}}
<!-- Do Whatever formating you want-->
{{/if}}
{{/for}}