2

我有一个简单的 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 的做法

4

1 回答 1

3

jQuery click 事件在触发时由 Handlebars 提供一个上下文。默认情况下,它是当前视图上下文,但您可以传入任何您喜欢的内容。

{{#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 ,特别是“指定上下文”部分。

于 2012-07-05T13:26:56.113 回答