【问题标题】:How to find length of the passed array in jsrender?如何在jsrender中查找传递数组的长度?
【发布时间】:2015-07-24 10:28:31
【问题描述】:

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

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

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

【问题讨论】:

    标签: arrays jsrender


    【解决方案1】:

    {{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

    【讨论】:

      【解决方案2】:

      你可以这样做
      {{for myArray ~len=myArray.length}} {{if #index != ~len-2}} <!-- Do Whatever formating you want--> {{/if}} {{/for}}

      【讨论】:

        猜你喜欢
        • 2018-12-09
        • 2022-01-10
        • 1970-01-01
        • 1970-01-01
        • 2017-09-20
        • 1970-01-01
        • 1970-01-01
        • 2013-03-03
        • 1970-01-01
        相关资源
        最近更新 更多