【问题标题】:Render variable partial渲染变量部分
【发布时间】:2014-09-29 12:10:43
【问题描述】:

我将 Handlebars 与 BackboneJS 一起使用。我有相互扩展的主干视图,例如ModalViewSpecificModalViewModalView 有一个 Handlebar 模板,类似这样(简化):

<div class="modal-header">
    {{modalTitle}}
</div>
<div class="modal-body">
    {{modalBody}}
</div>
<div class="modal-footer">
    {{modalFooter}}
</div>

现在,modalBody 通常比像标题这样的常规占位符更复杂一些,由SpecificModalView 定义。我想要的是 SpecificModalView 可以用部分或HTMLElement 对象覆盖modalBody

这是否超出了 Handlebarjs 的范围,我是否应该只使用 jQuery 来查找模态体并将其内容替换为 modalBody 传递的任何内容?或者 Handlebarjs 可以处理可变部分和 HTMLElements 吗?

我尝试过的一个想法是SpecificModalView 注册了一个名为modalBody 的助手并返回该模式所需的任何主体。不过,helpers 的返回值似乎被强制转换为字符串。

感谢您的帮助。

【问题讨论】:

    标签: handlebars.js require-handlebars


    【解决方案1】:

    好的,我刚刚找到了一个解决方案,您可以使用 Handlebars.SafeString 对象从帮助程序返回 HTML。所以SpecificModalView 可以这样做:

    hbs.registerHelper('modalBody', function() {
        var tpl = require('hbs!templates/SpecificModalBody'),
        return new hbs.SafeString(tpl());
    });
    

    (我正在使用 requirejs) 这提供了使用 jQuery 创建 HTML 对象或为内容使用另一个 Handlebar 模板的灵活性。

    不过,我愿意接受任何其他解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      相关资源
      最近更新 更多