如何在jsrender中查找传递的数组的长度?
How to find length of the passed array in jsrender?
我有一个数组传递给 jsRender,如下所示:
var myArray = [{name: Arun},
{name: Mohan},
{name: Deepak}
]
现在我将它传递给我创建的渲染模板。但在其中我需要为数组的前 2 个元素应用一个 for 循环,这样我就可以将它设置为不同于第三个元素的样式。
如何在jsrender for loop中找到上述数组的长度?
从 {{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 and http://www.jsviews.com/#samples/tag-controls/range.
你可以做到这一点
{{for myArray ~len=myArray.length}}
{{if #index != ~len-2}}
<!-- Do Whatever formating you want-->
{{/if}}
{{/for}}
我有一个数组传递给 jsRender,如下所示:
var myArray = [{name: Arun},
{name: Mohan},
{name: Deepak}
]
现在我将它传递给我创建的渲染模板。但在其中我需要为数组的前 2 个元素应用一个 for 循环,这样我就可以将它设置为不同于第三个元素的样式。 如何在jsrender for loop中找到上述数组的长度?
从 {{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 and http://www.jsviews.com/#samples/tag-controls/range.
你可以做到这一点
{{for myArray ~len=myArray.length}}
{{if #index != ~len-2}}
<!-- Do Whatever formating you want-->
{{/if}}
{{/for}}