JsRender,如何呈现匿名数组?

时间:2014-07-18 13:31:00

标签: javascript templates jsrender

我有一个匿名数组被传递到JsRender模板,我如何引用每个元素动态渲染它们?

以下是模板代码,我已将其设置完毕,我只是不知道要传递到{{for}}标记的变量:

<script id="template" type="text/x-jsrender">
    {{for /*What goes here?*/}}
        <div id="{{>id}}" class="title">{{>title}}</div>
    {{/for}}
</script>

以下是使用数据呈现模板的代码。我不知道传入方法的数组的长度。

$('#template').render([{
    id: 1,
    title: 'first title'
}, {
    id: 2,
    title: 'second title'
}, {
    id: 3,
    title: 'third title'
}]);

2 个答案:

答案 0 :(得分:1)

如果要将数组传递给JsRender方法,则JsRender 将自动遍历数组,并将应用模板的结果连接到数组中的每个项目。

http://www.jsviews.com/#tmplrender

所以你不需要包裹{{for ...}}。只需写下:

<script id="template" type="text/x-jsrender">
    <div id="{{>id}}" class="title">{{>title}}</div>
</script>

顺便说一下, 可以 告诉渲染不要自动渲染数组,方法是将true作为第二个参数传递:$('#template').render(myArray, true)。现在,在这种情况下,您需要告诉模板本身进行迭代 - 您可以通过包装{{for}}<div>...</div>{{/for}}(没有参数) - 或等效{{for #data}}<div>...</div>{{/for}}#data作为参数来执行此操作)。

答案 1 :(得分:0)

经过一些研究和倡议,我发现#data代表了JsRender的当前价值。

因此{{for #data}}是正确答案!