【发布时间】:2012-07-12 03:07:58
【问题描述】:
我有一个包含 html 标记的 ember 属性(<br />、<strong>、<p>、<span> 和类似的东西)。
如何告诉 ember 不要转义此文本?是否有任何来自 ember 的默认 Handlebars 助手,还是需要我自己编写?
【问题讨论】:
我有一个包含 html 标记的 ember 属性(<br />、<strong>、<p>、<span> 和类似的东西)。
如何告诉 ember 不要转义此文本?是否有任何来自 ember 的默认 Handlebars 助手,还是需要我自己编写?
【问题讨论】:
{{expression}}返回的 Handlebars HTML 转义值。
如果您不希望 Handlebars 转义值,请使用“triple-stash”。
{{{expression}}}
【讨论】:
== expression
在Ember.js 中,您可以通过添加到String 原型的htmlSafe 方法来执行此操作,请参阅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')
});
【讨论】:
.htmlSafe() 是我需要的方法
Ember 2.x,使用 JavaScript
要使字符串不转义并使用 Ember 模板输出,您可以使用 htmlSafe helper。
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>
【讨论】: