在列表中使用Ember组件

时间:2016-03-17 13:28:25

标签: ember.js ember-router ember-components

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

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

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

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

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

Alice |推广| 马克|推广| 特斯拉|推广|

然后我点击按钮来推广一名员工(比如员工马克),冒充的emp_id是爱丽丝(总是列表中的第一个员工)(而不是马克),你能让我知道在哪里我在这里错了吗?

1 个答案:

答案 0 :(得分:3)

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

模板:

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

组件:

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