0
試圖將非常複雜的jQuery模板代碼轉換爲jsRender。我在舊代碼的每個循環:嘗試使用jsrender在for,for循環中的數組上運行函數
<script id = "imagesTemplate" type="text/x-jquery-tmpl">
{{each(i,imgUrl) twoAcross_filterOutMainImages(OfferGroup.Images)}}
<img src="{{= imgUrl}}" />
{{/each}}
</script>
<script id = "largeTemplate" type="text/x-jquery-tmpl">
{{tmpl "#imagesTemplate"}}
</script>
<div id="LARGE" class="mainContent"></div>
<script>
currentOffer = offerGroups[0].Groups[0];
$("#LARGE").html($("#largeTemplate").render(currentOffer));
</script>
我已經編輯它看起來像這樣:
{{for ~filterOutMainImages(Images) tmpl="#imagesTemplate"/}}
<div id="LARGE" class="mainContent"></div>
<script>
currentOffer = offerGroups[0].Groups[0];
$("#LARGE").html($("#largeTemplate").render(currentOffer));
</script>
但它不工作。如果我改變它是:
<script id = "imagesTemplate" type="text/x-jquery-tmpl">
<img src="{{= imgUrl}}" />
</script>
<script id = "largeTemplate" type="text/x-jquery-tmpl">
{{for Images tmpl="#imagesTemplate"/}}
</script>
<div id="LARGE" class="mainContent"></div>
<script>
currentOffer = offerGroups[0].Groups[0];
$("#LARGE").html($("#largeTemplate").render(currentOffer));
</script>
它把圖像顯示,但功能並不像陣列上運行。但是,如果我離開Images數組而沒有被包裝在一個函數中,並將for循環移動到模板內部,它就會中斷。
我該如何轉換此場景?
你如何聲明你的幫助函數:filterOutMainImages?是的,顯示小提琴會很好...應該是{{:imgUrl}}。 上面的第二個版本缺少一個