我有一个数组传递给 jsRender,如下所示:
var myArray = [{name: Arun},
{name: Mohan},
{name: Deepak}
]
Run Code Online (Sandbox Code Playgroud)
现在我将其传递给我创建的渲染模板。但在其中,我需要对数组的前 2 个元素应用 for 循环,以便我可以将其样式设置为与第三个元素不同的样式。如何在 jsrender for 循环中找到上述数组的长度?
从 a 内部,{{for someArray}}您可以使用以下方法获取数组的长度{{:#get("array").data.length}}:
{{for someArray}}
{{:name}} (array length: {{:#get("array").data.length}}...)
{{/for}}
Run Code Online (Sandbox Code Playgroud)
或者,您可以将数组作为上下文模板参数传递,并使用{{:~array.length}}如下:
{{for someArray ~array=someArray}}
{{:name}} (array length: {{:~array.length}}...)
{{/for}}
Run Code Online (Sandbox Code Playgroud)
要以不同方式格式化数组中的某些项目,您可以简单地使用{{if ...}},如下所示:
{{for someArray}}
{{if #index<2}} ... {{else}} ... {{/if}}
{{/for}}
Run Code Online (Sandbox Code Playgroud)
或者您可能想创建一个自定义{{range}}标签或类似的标签来迭代索引的子集,如http://www.jsviews.com/#samples/jsr/tags/extend-for和http://www. jsviews.com/#samples/tag-controls/range。