如何将属性传递给Handlebars助手

时间:2012-10-29 18:34:35

标签: ember.js handlebars.js

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

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

在这种情况下,log语句将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>。任何想法在这里出了什么问题? 感谢

2 个答案:

答案 0 :(得分:2)

车把:

{{span 'className'}}

在app中:

Handlebars.registerHelper('span', function(className) {
  return new Handlebars.SafeString("<span class='"+Handlebars.Utils.escapeExpression(className)+"'></span>");
});

答案 1 :(得分:0)

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