jsrender:使用{{each}}嵌套模板

时间:2012-02-14 11:15:27

标签: javascript jquery templates jquery-templates jsrender

我的模板中有这段代码:

{{each(i, service) package_services}}
                <tr>
                    <td class="mini2">${service.name}</td>
                    <td class="mini2 right">${service.price}</td>
                    <td class="mini2 right" >${service.duration}</td>
                    <td class="mini2 right" >${service.max_products}</td>
                    <td class=""><a href="#" rel="" class="remove_package_service tipsyn" title="Odstrani moderatorja"><img src="/media/icons/no_14.png" /></a></td>
                </tr>
{{/each}}

我也定义了这个子模板:

<script id="row_tmpl_package_service" type="text/x-jquery-tmpl">
    <tr>
        <td class="mini2">${service.name}</td>
        <td class="mini2 right">${service.price}</td>
        <td class="mini2 right">${service.duration}</td>
        <td class="mini2 right">${service.max_products}</td>
        <td class=""><a href="#" rel="" class="remove_package_service tipsyn" title="Odstrani moderatorja"><img src="/media/icons/no_14.png" /></a></td>
    </tr>
</script>

我如何使用已经预定义的模板,所以我不必重复代码?

我试过

{{each package_services tmpl="#row_tmpl_package_service"}}

但当然它没有用,因为在模板中我使用{{service.name}}和{{service.price}}所以cna我告诉“each”语句,我有一个额外的命名空间?

1 个答案:

答案 0 :(得分:0)

为此使用“tmpl”标签而不是像:

这样的属性
{{each(i, service) package_services}}
    {{tmpl({'service': service}) "#row_tmpl_package_service"}}
{{/each}}

如果这在您的配置中不起作用,请尝试使用您的代码示例设置jsfiddle。)