2015-07-18 89 views
0

props循環級別,我必須設置數據:set_of_data_1set_of_data_2。 我想循環set_of_data_1,爲每個迭代包含另一個模板,並在其中包括模板循環set_of_data_2jsRender包含模板中當前循環的當前上下文

//TemplateA 
{{props object.value}} 
    <span>{{:key}}</span> 
    <div> 
    {{for prop.set_of_data_1 ~set_of_data_2=prop.set_of_data_2}} 
     {{include tmpl="TemplateB"/}} 
    {{/for}} 
    </div> 
{{/props}} 


//TemplateB 
{{for ~set_of_data_2}} 
    // <- here I want to loop trough set_of_data_2, 
    // but it seems that #index (actually #getIndex()) 
    // is resolving the #index of the for loop from TemplateA (prop.set_of_data_1) 
    // and #data is resolving the indexes of ~set_of_data_2 
{{/for}} 

所以,我怎麼能打印#index#data#data.some_key)的~set_of_data_2在TemplateB?

UPDATE:對不起,我的錯誤和浪費你的時間鮑里斯。現在,我有另外一個問題(上面同樣的例子,但略有不同):

//TemplateA 
{{props object.value}} 
    <span>{{:key}}</span> 
    <div> 
    {{for prop.set_of_data_1 ~prop=prop}} 
     {{include tmpl="TemplateB"/}} 
    {{/for}} 
    </div> 
{{/props}} 


//TemplateB 
{{for ~prop.set_of_data_2}} 
    // This is working... 
    <span>{{:#parent.parent.data[#data.some_key]}}</span> //Accesing set_of_data_1 

    // But this doesn't... 
    {{if some_condition}} 
    <span>{{:#parent.parent.data[#data.some_key]}}</span> //Accesing set_of_data_1 inside IF (and I'm getting inside IF) 
    {{/if}} 
{{/for}} 

回答

1

它似乎正常工作對我說:

<script type="text/x-jsrender" id="tmplA"> 
    {{props object.value}} 
    <span>{{:key}}</span> 
    <div> 
    {{for prop.set1 ~set2=prop.set2}} 
     <div><br/> 
     One{{:val}}<br/> {{include tmpl="#tmplB"/}} 
     </div> 
    {{/for}} 
    </div> 
    {{/props}} 
</script> 

<script type="text/x-jsrender" id="tmplB"> 
    One{{:val}} 
    {{for ~set2}} 
    <div> 
     Two{{:val}} TwoIndex{{:#index}} 
    </div> 
    {{/for}} 
</script> 

<div id="result"></div> 

<script> 
    var app = { 
    object: { 
     value: { 
     foo: { 
      set1: [{val: "aaa"}, {val: "bbb"}], 
      set2: [{val: "AAA"}, {val: "BBB"}] 
     } 
     } 
    } 
    }; 

    var tmpl = $.templates("#tmplA"); 

    $("#result").html(tmpl.render(app)); 
</script> 

結果:

foo 

Oneaaa 
Oneaaa 
TwoAAA TwoIndex0 
TwoBBB TwoIndex1 


Onebbb 
Onebbb 
TwoAAA TwoIndex0 
TwoBBB TwoIndex1 

是有這個問題嗎?