{{#each}}ブロック内のスコープについて混乱しました。
ハンドルバースクリプトがある場合
<script type="text/x-handlebars">
{{#each vars}}
<button {{action foo}}> {{name}} </button>
{{/each}}
</script>
アプリケーションコントローラーを次のように設定します
App.ApplicationController = Ember.Controller.extend({
vars: Ember.ArrayController.create({
content: [
{ name: "Cow",
foo: function(){console.log("moo");}
},
{ name: "Cat",
foo: function(){console.log("meow");}
}
]
})
});
スクリプトは問題なく表示され、期待どおりにボタンのタイトルとして挿入されますが、アクションは配列メンバー内で定義された関数{{name}}
にバインドされません。 foo
私が見逃しているこれを行う方法はありますか、それともfoo
内部で直接定義されるようにリファクタリングする必要がありますApplicationController
か?