在Ember助手中使用Unescape HTML

时间:2013-10-23 02:21:08

标签: ember.js

我的Ember应用程序中有以下帮助:

Ember.Handlebars.helper "social_profiles", ((person) ->
  person.social_profiles.map (item) ->
    " <a href=''> #{item.type_name}</a>"
), "social_profiles"

每次调用帮助器时,它都会返回一个转义字符串,但我想要使用ember来显示HTML链接。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:9)

您可以使用new Handlebars.SafeString("<b>hello world</b>")将字符串标记为安全。把手现在不会逃脱任何输入。

但是,您需要确保您的字符串是安全的。由于您传入的item.type_name可能包含恶意代码,因为您声明字符串是安全的,因此不会被捕获。

为了解决这个问题,首先要逃避用户输入,然后将其包装在标记为安全的标签中。

示例:

Ember.Handlebars.registerHelper('boldItem', function(item) {
  var escaped = Handlebars.Utils.escapeExpression(item);
  return new Handlebars.SafeString("<b>" + escaped + "</b>");
});

答案 1 :(得分:0)

感谢@ Ryan的回答

Ember.Handlebars.helper "social_profiles", ((person) ->
  return new Handlebars.SafeString person.social_profiles.map (item) ->
    " <a href=''>#{item.type_name}</a>"
), "social_profiles"