在列表中使用 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);
}
}
我在数组中使用 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);
}
}