【问题标题】:jsrender: nesting templates with {{each}}jsrender:使用 {{each}} 嵌套模板
【发布时间】:2012-02-14 11:15:27
【问题描述】:

我的模板中有这段代码:

{{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}} 所以我如何告诉“每个”语句,我有一个额外的命名空间?

【问题讨论】:

  • 您的问题是关于 js-render 但您的代码建议 jQuery 模板作为 javascript 类型设置为 x-jquery-tmpl

标签: javascript jquery templates jquery-templates jsrender


【解决方案1】:

为此使用“tmpl”标签,而不是像这样的属性:

{{each(i, service) package_services}}
    {{tmpl({'service': service}) "#row_tmpl_package_service"}}
{{/each}}

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

【讨论】:

  • 它不起作用:(...在 jsfiddle 中设置它有点乱...感谢您的回答...现在我有点着急所以我将使用克隆的代码...但我会定义返回并解决它!
  • 您的模板无法与最新版本的 jsrender 一起使用,可能是因为github.com/BorisMoore/jsrender/issues/41
猜你喜欢
  • 1970-01-01
  • 2013-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-28
相关资源
最近更新 更多