41

我有一个 ember 属性,其中包含 html 标签(<br /><strong><p><span>和类似的东西)。

我如何告诉 ember 不要转义此文本?是否有任何来自 ember 的默认 Handlebars 助手,还是需要我自己编写?

4

3 回答 3

88

来自http://handlebarsjs.com/

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

{{{expression}}}

于 2012-07-12T11:39:52.387 回答
16

Ember.js可以通过htmlSafe添加到String原型中的方法执行此操作,请参阅http://jsfiddle.net/pangratz666/jNAQ6/

车把

<script type="text/x-handlebars" >
    {{App.html}} - {{App.unescaped}}
</script>​

JavaScript

App = Ember.Application.create({
    html: '<b>bold text</b>',
    unescaped: function(){
        return this.get('html').htmlSafe();
    }.property('html')
});​
于 2012-07-12T11:44:21.950 回答
3

Ember 2.x,使用 JavaScript

要使用 Ember 模板使字符串不转义并输出,您可以使用htmlSafehelper。

Ember.String.htmlSafe('<div>someString</div>')

返回的字符串不会被 Handlebars 模板引擎转义为 HTML。

http://emberjs.com/api/classes/Ember.String.html#method_htmlSafe

仅使用车把

或者,您可以将原始 HTML 传递给 Handlebars 模板并使用三方括号获取原始 HTML 输出

内部车把模板

<div>{{{raw_html_content}}}</div>
于 2017-02-20T07:15:22.167 回答