0

我在访问嵌套模板中的父索引时遇到问题。尝试在模板中发送 #index 作为参数,但它不起作用(http://jsfiddle.net/Xsrdb/)。

<script id="firstTemplate" type="text/x-jsrender">
     {{for segments}}
        <b>{{:#index}}</b>
    {{/for}}
    {{for segments tmpl='#secondTemplate' ~parent_index=#index}}
        <b>{{:#index}}</b>
    {{/for}}
</script>

<script id="secondTemplate" type="text/x-jsrender">
    <div>
        {{>~parent_index/}}
        <i>{{>name/}}</i>
    </div>
</script>

有谁知道如何解决这个问题?

提前致谢。

4

3 回答 3

2

在您提供的示例中,您可以简单地{{>#index}}在 secondTemplate 中使用来获取元素的索引。

<script id="secondTemplate" type="text/x-jsrender">
    <div>
        <b>{{>#index}}</b>
        <i>{{>name/}}</i>
    </div>
</script>

这是 jsFiddle 中的示例:http: //jsfiddle.net/Xsrdb/1/

请注意,如果您需要父节点的索引,您可以使用:

{{>#parent.index}}
于 2013-04-11T11:27:52.987 回答
1

您可以编写的第二个模板{{for segments tmpl='#secondTemplate' ~parent_index=#index/}}在该点将 ~parent_index 设置为#index,但此时的#index 是未定义的,因为您不在重复模板中(即“项目”视图)。

如果您使用以下数据,则会显示索引:

var data = [{
   segments: [
       {name: 'a'},
       {name: 'b'}
   ]
},{
   segments: [
       {name: 'x'},
       {name: 'y'}
   ]
}];
于 2013-04-11T17:49:17.580 回答
0

还有一种语法可以向上走。

http://borismoore.github.io/jsrender/demos/step-by-step/11_accessing-parent-data.html

于 2013-04-11T21:43:51.680 回答