我正在使用Handlebars和BackboneJS。我有相互扩展的Backbone Views,例如一个ModalView
和一个SpecificModalView
。 ModalView
有一个Handlebar模板,类似这样(简化):
<div class="modal-header">
{{modalTitle}}
</div>
<div class="modal-body">
{{modalBody}}
</div>
<div class="modal-footer">
{{modalFooter}}
</div>
现在,modalBody
通常比标题的常规占位符更复杂,并由SpecificModalView
定义。我想要的是,SpecificModalView可以使用部分或modalBody
对象覆盖HTMLElement
。
这是否超出了Handlebarjs的范围,我是否应该使用jQuery来查找模态体并将其内容替换为modalBody
传递的内容?或者Handlebarjs可以处理变量partials和HTMLElements吗?
我尝试过的一个想法是SpecificModalView
注册了一个名为modalBody
的助手,并返回该模式所需的任何身体。助手的返回值似乎是类型转换为字符串。
感谢您的帮助。
答案 0 :(得分:0)
好的,我刚刚找到一个解决方案,您可以使用Handlebars.SafeString
对象从帮助程序返回HTML。所以SpecificModalView
可以这样做:
hbs.registerHelper('modalBody', function() {
var tpl = require('hbs!templates/SpecificModalBody'),
return new hbs.SafeString(tpl());
});
(我使用requirejs) 这提供了使用jQuery创建HTML对象或使用内容的另一个Handlebar模板的灵活性。
我可以接受任何其他解决方案。