【问题标题】:Ember js, inject html tags in a template and render them as htmlEmber js,在模板中注入html标签并渲染为html
【发布时间】:2013-12-23 19:43:37
【问题描述】:

假设我有一个非常简单的模板:

<script type="text/x-handlebars" data-template-name='myTemplate'>
  <h1>{{name}}</h1>
  <div>{{content}}</div>
</script>

还有一个看起来像这样的模型:

model = {
  name: 'My name',
  content: 'some content <a href="target">with a link</a> and some <i>italic</i> text'
}

我不制作模型,我从 Web 服务加载它,它会包含(或不包含)html 标签。

“我的名字”被正确呈现,但内容被呈现为字符串而不被解释为 html。

如何强制 ember 在模板中呈现 html

【问题讨论】:

    标签: ember.js handlebars.js


    【解决方案1】:

    好的,抱歉...通过发布问题,我意识到这可能是一个车把问题。

    答案在车把文档中:

    Handlebars HTML 转义 {{expression}} 返回的值。如果您不希望 Handlebars 转义值,请使用“triple-stash”,{{{。

    所以我的模板必须是:

    <script type="text/x-handlebars" data-template-name='myTemplate'>
      <h1>{{name}}</h1>
      <div>{{{content}}}</div>
    </script>
    

    【讨论】:

    • 您有没有遇到过 HTML 可能有脚本标签的情况?我遇到的问题是它看不到执行...
    • 这将是一个巨大的安全问题
    • 总的来说,我同意。就我而言,HTML 来自受信任的来源(网站管理员通过 CMS)。
    猜你喜欢
    • 1970-01-01
    • 2015-09-12
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    相关资源
    最近更新 更多