【问题标题】:JsRender Access parent index in nested templateJsRender 访问嵌套模板中的父索引
【发布时间】:2013-04-11 07:37:54
【问题描述】:

我在访问嵌套模板中的父索引时遇到问题。尝试在模板中将 #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>

有人知道如何解决吗?

提前致谢。

【问题讨论】:

    标签: jsrender


    【解决方案1】:

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

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

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

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

    {{>#parent.index}}
    

    【讨论】:

      【解决方案2】:

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

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

      var data = [{
         segments: [
             {name: 'a'},
             {name: 'b'}
         ]
      },{
         segments: [
             {name: 'x'},
             {name: 'y'}
         ]
      }];
      

      【讨论】:

        【解决方案3】:
        猜你喜欢
        • 2016-04-28
        • 2015-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-17
        • 2013-01-20
        • 2013-01-29
        • 2013-10-06
        相关资源
        最近更新 更多