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 に答える