3

我正在尝试在我的 Ember.js 应用程序中注册一个 Handlebars.js 助手,这将允许我传入一个视图属性,该属性是一个简单的 html 字符串,可以在不被转义的情况下呈现。我的模板如下所示:

  <span class="add-on">{{log view.append}}{{safeMarkup view.append}}</span>

在这种情况下,日志语句将 html 字符串正确输出到控制台,例如<span>text</span>.

我的助手 safeMarkup 如下:

Handlebars.registerHelper('safeMarkup', (string) ->
  return new Handlebars.SafeString(string)
)

然而,渲染的不是view.append属性的值,而是字符串“view.append”本身!像这样:<span class="add-on">view.append</span>。任何想法这里出了什么问题?谢谢

4

2 回答 2

2

在车把中:

{{span 'className'}}

在应用程序中:

Handlebars.registerHelper('span', function(className) {
  return new Handlebars.SafeString("<span class='"+Handlebars.Utils.escapeExpression(className)+"'></span>");
});
于 2013-01-18T08:27:13.847 回答
0

您还可以使用三重胡须来避免转义 html 字符串... http://jsbin.com/imafuq/8/edit

于 2013-05-28T08:49:24.667 回答