我在数组中使用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是爱丽丝(总是列表中的第一个员工)(而不是马克),你能让我知道在哪里我在这里错了吗?
答案 0 :(得分:3)
因此,您需要将员工ID作为操作的参数传递:
模板:
{{#each employees as |employee|}}
{{employee.first_name}}
{{button action=(action 'promoteEmployee' employee.id)}}
{{/each}}
组件:
actions: {
pressButton(empId){
this.get('action')(empId);
}
}