Emberjs将参数从模板传递给函数

时间:2012-07-05 13:18:03

标签: javascript ember.js

我有一个简单的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中的事情。

1 个答案:

答案 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;部分。