使用Ember.js,如何使用Helpers和SafeString在夹具数据中显示HTML?

时间:2013-12-10 22:44:25

标签: ember.js

我可以通过将手柄表达式包装在三个花括号中来轻松完成任务,例如{{{html}}},但Ember.js建议我们首先转义任何用户数据。

以下fixture具有我想要出现的HTML(Hello,我是HTML!)。

var posts = [{
    category: 'Code',
    id: 'cssbestpractices',
    title: 'CSS Best Practices',
    date: { weekday: 'Friday', month: 'November', day: '1', year: '2013' },
    html: '<li>Hello, I am HTML!</li>'
}...

表达。

<script type="text/x-handlebars" id="post">
 {{highlight html}}
</script>

帮助者我试图添加......

Ember.Handlebars.helper('highlight', function(value, options) {
  var html = Handlebars.Utils.escapeExpression(value);
  return new Handlebars.SafeString(html);
});

我如何通过Handlebars SafeString方法传递HTML?这是我在JSFiddle所处的位置。在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

摆脱escapeExpression,确保这是你的数据,这会打开危险的门。

Ember.Handlebars.helper('rawhtml', function(value, options) {
  return new Handlebars.SafeString(value);
});

{{rawhtml html}}