我的 Ember 应用程序中有以下帮助程序:
Ember.Handlebars.helper "social_profiles", ((person) ->
person.social_profiles.map (item) ->
" <a href=''> #{item.type_name}</a>"
), "social_profiles"
每次我调用帮助器时,它都会返回一个转义字符串,但我希望 ember 显示 HTML 链接。
我怎样才能做到这一点?
我的 Ember 应用程序中有以下帮助程序:
Ember.Handlebars.helper "social_profiles", ((person) ->
person.social_profiles.map (item) ->
" <a href=''> #{item.type_name}</a>"
), "social_profiles"
每次我调用帮助器时,它都会返回一个转义字符串,但我希望 ember 显示 HTML 链接。
我怎样才能做到这一点?
您可以使用 将字符串标记为安全的new Handlebars.SafeString("<b>hello world</b>")
。Handlebars 现在不会转义任何输入。
但是,您需要确保您的字符串是安全的。由于您传入的item.type_name
内容可能包含由于您将字符串声明为安全的而不会被捕获的恶意代码。
为了解决这个问题,首先将用户输入转义,然后将其包装在标记为安全的标签中。
例子:
Ember.Handlebars.registerHelper('boldItem', function(item) {
var escaped = Handlebars.Utils.escapeExpression(item);
return new Handlebars.SafeString("<b>" + escaped + "</b>");
});
感谢@Ryan的回答
Ember.Handlebars.helper "social_profiles", ((person) ->
return new Handlebars.SafeString person.social_profiles.map (item) ->
" <a href=''>#{item.type_name}</a>"
), "social_profiles"