2

一部のテキストをブロックで折り返したい。それを行う方法を理解することはできません。

JS:

    Handlebars.registerHelper('mywrap', function (options) {
      return '<p class="TEST" >' + options.fn(this) + '</p>';
    });

レンプレート:

    {{#mywrap}}
        This text must be wrapped
    {{/mywrap}}

最終的なhtmlは次のようになります。

<p class="TEST">This text must be wrapped</p>

Ember v1.0.0-pre4、ハンドルバー1.0.rc.2、Jquery 1.9.0

4

1 に答える 1

3

ブロック内でテキストを折り返す方法はたくさんありますが、実際にはユースケースによって異なります。なんらかの理由で、文字通りHTMLを書くことはあなたが探しているものではないと思います。

まず、Handlebars SafeStringを返すことができますが、ユーザー提供のコンテンツをラップする場合、これはセキュリティの問題を引き起こします。

Ember.Handlebars.registerHelper('mywrap', function (options) {
  return new Handlebars.SafeString('<p class="TEST" >' + options.fn(this) + '</p>';)
});

次に、ビューでラップできます

{{#view classNames="TEST" tagName="p"}}
  This text must be wrapped
{{/view}}

第三に、ビューを作成するハンドルバーヘルパーを作成できます。

Ember.Handlebars.registerHelper('mywrap', function (options) {
  var view = Ember.View.extend({tagName:"p",classNames:"TEST"})
  return Ember.Handlebars.helper.view.call(this, view, options)
});

警告、私は実際にコードをチェックしていないので、タイプミスがあるかもしれません

于 2013-01-30T03:13:24.710 に答える