带有“div”标签的把手模板而不是“脚本”

时间:2012-07-25 21:46:17

标签: template-engine handlebars.js

实际上问题出在主题... 是否可以制作把手模板框架,识别div标签内的模板而不是脚本标签?

例如,我想用这个标记创建模板:

<style>
    div.text-x-handlebars {display:none;}
</style>
<div class="text-x-handlebars-template">
    <h2>I'm template</h2>
    <p>{{welcomeMessage}}</p>
</div>

1 个答案:

答案 0 :(得分:5)

是的,您可以将模板放在<div>而不是<script>中,例如:

  

http://jsfiddle.net/ambiguous/RucqP/

然而,这样做充满了危险。如果您将模板放在<div>内,那么浏览器会在之前将其解释为HTML 。因此,如果模板的HTML在之后之前无效,那么浏览器可能会尝试更正它并弄乱一切。此外,如果您的模板中包含id个属性,那么您最终会得到重复的id个(模板<div>中的一个,并且您在填写的模板中重复一次) DOM),这将导致各种奇怪和有趣的错误。浏览器还会尝试在<div>中下载模板内的任何图像,这可能是也可能不是问题(如果图像在其{{1}中使用模板变量,则可能是可取的但可能不合适属性)。

基本上,您可以这样做但不应该这样做,您应该将模板放在src元素中。