如何在jsrender中找到传递数组的长度?

时间:2015-07-24 10:28:32

标签: arrays jsrender

我有一个传递给jsRender的数组,如下所示:

var myArray = [{name: Arun},
               {name: Mohan},
               {name: Deepak}
              ]

现在我将它传递给我创建的渲染模板。但在其中我需要为数组的前2个元素应用for循环,以便我可以将其设置为与第三个不同的样式。 如何在jsrender for循环中找到上述arrray的长度?

2 个答案:

答案 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-forhttp://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}}