在列表中使用 Ember 组件

Using An Ember Component in a list

我在数组中使用 Ember 组件(例如:按钮):

{{#each employees as |employee|}}
   {{employee.first_name}}
   {{component "button" action='promoteEmployee' emp_id=employee.id}}
{{/each}}

并且,在按钮上的组件操作是 pressButton(eg):

pressButton: function(){
  this.sendAction('action', this.get('emp_id'));
}

但是,当呈现员工列表时(例如):

爱丽丝|升级| 标记|提升| 特斯拉 |推广|

然后我点击按钮提升员工(比如员工 Mark),弹出的 emp_id 是 Alice(总是列表中的第一个员工)(而不是 Mark),你能告诉我我哪里错了吗?

因此您需要将员工 ID 作为操作的参数传递:

模板:

{{#each employees as |employee|}}
    {{employee.first_name}}
    {{button action=(action 'promoteEmployee' employee.id)}}
{{/each}}

组件:

actions: {
  pressButton(empId){
    this.get('action')(empId);
  }
}