10

単純なハンドルバーと変更された Ember ハンドルバー ヘルパーに加えられたこれらすべての変更に追いつくことができません。私の記憶が正しければ、次の方法でヘルパーを登録できます

  • Ember.Handlebars.helper
  • Ember.Handlebars.registerHelper
  • Ember.Handlebars.registerBoundHelper
  • Handlebars.registerHelper

それは私には多すぎる。違いは何ですか?

4

2 に答える 2

12

Ember.Handlebars.registerHelper引数文字列をプロパティにバインドしない基本的なヘルパーです。たとえば、挨拶メッセージを返すだけの でhello作成されたヘルパーを考えてみましょう。registerHelper

Ember.Handlebars.registerHelper('hello', function(name) {
  return 'Hello ' + name;
});

テンプレートで使用する場合は、

{{hello name}}

として表示テキストを取得しますHello namenameプロパティの値は検索されません

プロパティの値をname必要なヘルパーに取得するには、registerBoundHelper. 名前が示すように、nameプロパティとの間にバインディングを作成します。変更nameが行われるたびに、ヘルパーが再度呼び出されて再レンダリングされます。実装は似ていますが、

Ember.Handlebars.registerBoundHelper('hello', function(name) {
  return 'Hello ' + name;
});

これは、必要なヘルパーの種類を自動検出するための追加のチェックとEmber.Handlebars.helper同じです。registerBoundHelper

バニラHandlebars.registerHelperは Ember 内では使用されません。Ember を使用しないプロジェクトに対しても同様のヘルパーが作成されます。

于 2013-08-02T08:42:51.547 に答える
1
  • Ember.Handlebars.helperヘルパーを登録するために使用する必要がありますが、他の方法はその限定バージョンです。Ember.Handlebars.helperビューとモデルの同期を維持するバインディングを使用して HTML をレンダリングします。関数、ビュー、およびコンポーネントは、ヘルパー定義として提供できます。

  • Ember.Handlebars.registerBoundHelperは と同じEmber.Handlebars.helperですが、ヘルパー定義として関数のみを指定できます。

  • Ember.Handlebars.registerHelper以前に委任されましたHandlebars.registerHelperEmber.Handlebars.registerHelperはもう存在しませんが、バインディングが設定された後にすべてのヘルパーを作成するためにHandlebars.registerHelper内部で使用されています。Ember

于 2014-11-01T22:20:51.363 に答える