Использование компонента Ember в списке

Я использую компонент Ember (например, кнопку) в массиве:

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

И в компоненте действие на кнопку - это нажатие кнопки (например):

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

Но когда отображается список сотрудников (например):

Алиса |Повысить| Отметить |Повысить| Тесла |Продвижение|

И я нажимаю кнопку, чтобы повысить сотрудника (скажем, сотрудника Марка), всплывающий emp_id принадлежит Алисе (всегда первый сотрудник в списке) (а не Марк), вы можете сообщить мне, куда я иду здесь не так?


person kattybilly    schedule 17.03.2016    source источник
comment
У вас есть компонент с именем button? Почему вы используете такой странный синтаксис для объявления компонента в шаблоне?   -  person Daniel Kmak    schedule 17.03.2016
comment
У вас отсутствуют кавычки на emp_id, должно ли это быть this.get('emp_id'))?.   -  person Carl    schedule 18.03.2016
comment
@carcel, да, это была опечатка. Edited это.   -  person kattybilly    schedule 02.04.2016


Ответы (1)


Итак, вам нужно передать идентификатор сотрудника в качестве параметра действия:

Шаблон:

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

Составная часть:

actions: {
  pressButton(empId){
    this.get('action')(empId);
  }
}
person Gaurav    schedule 17.03.2016