【问题标题】:JsRender - How to render template from within template?JsRender - 如何从模板内渲染模板?
【发布时间】:2012-05-13 03:58:35
【问题描述】:

如何在 JSRender 的模板中渲染模板?在之前的 jquery 模板中,我可以使用

{{tmpl(Languages) "#languageTemplate"}}

在 JSRender 中,我可以在条件语句和循环中找到模板组合示例。我想独立调用模板。

【问题讨论】:

    标签: jquery jquery-templates jsrender


    【解决方案1】:

    在 JsRender 中

    {{for Languages tmpl="#languageTemplate"/}}

    或多或少完全等同于 jQuery 模板中的以下内容

    {{tmpl(Languages) "#languageTemplate"}}

    在每种情况下,如果 Languages 是一个数组,则 languageTemplate 将为每个项目呈现一次,但如果 Languages 不是数组,则模板将呈现一次。

    【讨论】:

    • 嗨,鲍里斯。它不起作用(我正在使用来自 github 的最新代码“pre beta commit counter 9”)。如何将当前变量范围传递给子模板?
    • 以下代码有效{{for #data tmpl="#languageTemplate"/}}。这是正确的用法吗?另外,当前版本是测试版吗?我从 3 月份读到了您关于 JSRender 处于测试阶段的评论。但项目页面显示它仍处于测试阶段。
    • 是的,这对于当前语法是正确的。 (现在在上面更新)。当前的 JsRender API 非常接近测试版 - 但它还不是正式的测试版,直到 JsViews 也达到稳定的测试版 API 设计。
    • @BorisMoore 你认为你可以帮助解决这个问题吗:stackoverflow.com/questions/19100184/…
    【解决方案2】:

    鲍里斯回答的一个更新。在 Boris 的最新文档中,您需要在 for 循环中的模板名称前添加“tmpl=”以引用模板中的模板。所以最终版本是:

    {{for Languages tmpl="#languageTemplate"/}}

    查看他的demo 了解更多信息

    【讨论】:

    • 是的,谢谢,这是正确的。在我上面的回复中编辑/更正。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    • 2017-03-01
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    相关资源
    最近更新 更多