2013-04-11 99 views
0

我在嵌套模板中訪問父索引時遇到問題。嘗試在模板中發送#index作爲參數,但它不起作用(http://jsfiddle.net/Xsrdb/)。JsRender在嵌套模板中訪問父索引

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

有沒有人知道如何解決這個問題?

在此先感謝。

回答

2

在您提供的示例中,您可以簡單地在secondTemplate中使用{{>#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}} 
1

你的第二個模板,你可以作爲寫{{for segments tmpl='#secondTemplate' ~parent_index=#index/}}正在將〜parent_index設置爲該點處的#index,但由於您不在重複模板(即「項目」視圖)中,因此該點處的#index未定義。

如果你使用的數據,如下面的指標將顯示:

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