如何在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}}