【问题标题】:Using An Ember Component in a list在列表中使用 Ember 组件
【发布时间】:2016-03-17 13:28:25
【问题描述】:

我在数组中使用 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),你能告诉我在哪里吗我是不是在这里出错了?

【问题讨论】:

  • 你有名为按钮的组件吗?为什么在模板中使用这种奇怪的语法来声明组件?
  • 您在emp_id 上缺少引号,应该是this.get('emp_id'))?。
  • @carcel ,是的,这是一个错字。 Edited它。

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


【解决方案1】:

所以你需要将员工 id 作为操作的参数传递:

模板:

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

组件:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多