emberjs のハンドルバー テンプレート内にアクションを追加できます。
<li>{{action "SomeAction" this}} {{this.name}}</li>
SomeAction が呼び出されます。
カスタム ヘルパー内にアクションを追加するにはどうすればよいですか (これは単なる例です。そこにはさらに多くのコードがあります)。
Ember.Handlebars.registerHelper('foo', function(property, options) {
var bar = Ember.Handlebars.get(this, property, options);
var args = Array.prototype.slice.call(arguments, 1);
args.unshift("someAction");
args.unshift(bar);
var action = Ember.Handlebars.helpers.action.apply(this, args);
return new Ember.Handlebars.SafeString("<li "+new Ember.Handlebars.SafeString(action)+">"+bar.get("name")+"</li>");
});
これは同じliタグを作成しますが、liタグをクリックするとこのエラーが発生して機能しません(エラーメッセージは談話アプリからのものです):
キャッチされていないエラー: アクション '' を処理したものはありません。アクションを処理した場合、このエラーは、コントローラーのアクション ハンドラーから true が返され、アクションがバブリングすることによって発生する可能性があります。