我有一个简单的foreach循环:
{{#each App.userC.companies}}
<button class="btn btn-inverse btn-huge" {{action setcompany target="App.userC"}}>{{this.name}}</button>
{{/each}}
“companies”元素有两个元素:name和id
当我点击按钮时,我想知道点击了哪个“this.id”?怎么做到这一点?我试过了:
setcompany: function(e){
console.log($(e.target).data(...)); //output: <script id='metamorph-4-start' type='text/x-placeholder'></script>4ff2f79461d69a9811000001<script id='metamorph-4-end' type='text/x-placeholder'></script>
}
但它很无用,我打赌这不是Ember中的事情。
答案 0 :(得分:3)
触发时,Handlebars会为jQuery click事件提供一个上下文。默认情况下,它是当前视图上下文,但您可以传入任何您喜欢的内容。
{{#each App.userC.companies}}
<button class="btn btn-inverse btn-huge" {{action setCompany target="App.userC" context="this"}}>{{this.name}}</button>
{{/each}}
setCompany: function(event){
var company = event.context
}
您可以查看API here,特别是&#39;指定上下文&#39;部分。