0

次のハンドルバーとヘルパーメソッドがあります

ハンドルバー

{{myHelper grp.group_name optionBinding=data}}

ここで、データは次のようになります => Object {Eastern Group: 1} and grp.group_name = 'Eastern Group'
Helper

Ember.Handlebars.registerBoundHelper('myHelper', function(value, options) {
  console.log(options);
  var map = options.hash.optionBinding;

  return map[value];
});

私は registerBoundHelper を使用しているため、データ (キー/値オブジェクト) が変更されるたびに、myHelper からの戻り値も更新する必要がありますか?

以下は、http://emberjs.com/api/classes/Ember.Handlebars.html#method_registerBoundHelperで公開されているガイドによるものです。

バインドされたハッシュ オプションもサポートされています。例:

{{repeat text countBinding="numRepeats"}}

この例では、count はコンテキストの numRepeats プロパティの値にバインドされます。そのプロパティが変更されると、ヘルパーが再レンダリングされます。

4

1 に答える 1

0

あなたは間違った方法でバインディングにアクセスしていると思います。あなたが言及したAPIリンクに従って、実装は次のようになります。

Ember.Handlebars.registerBoundHelper('myHelper', function(value, options) {
  console.log(options);
  var map = options.hash.option; //don't use Binding at the end

  return map[value];
});

ヘルパーを使用して属性 'optionBinding' を指定すると、値からプロパティ 'option' へのバインディングを作成するよう ember に指示されます。したがって、その値にアクセスする場合は、「オプション」のみを使用する必要があります。

于 2013-03-22T09:24:21.277 に答える