2016-02-07 44 views
1

嗨我想从一个子组件发送一个动作备份到父组件,以便它可以访问this.store并执行数据库动作。基本布局是这样的:发送一个动作从一个子组件到Ember 2.2中的父组件

应用程序/模板/项目/ index.hbs - >确实使用分量

  {{#each model as |item|}} 
       {{item-listing item=item}} 
      {{/each}} 

应用程序/模板/组件/产品-listing.hbs

<li><a {{action 'copyItem' item}}>Copy</a></li> 
项的环

在app/components/item-listing.js中,我必须定义一个动作或者我得到一个动作未定义的错误。从这里this.store是不确定的,所以我试图将这个动作冒泡。

actions: { 
    copyItem: function(item) { 
     this.sendAction('copyItem', item); 
    }, 

从这里我迷路了。我试图把动作上的所有如下:

/app/routes/item/index.js /app/routes/item.js

但它似乎永远不会让过去的sendAction电话。我究竟做错了什么?

回答

2

你必须:

  1. 在你的控制器(ItemIndexController)定义一个动作(copyItem)。
  2. 传递行动在模板循环:

1路:

{{#each model as |item|}} 
    {{item-listing item=item copyItem='copyItem'}} 
{{/each}} 

第二个办法:

{{#each model as |item|}} 
    {{item-listing item=item copyItem=(action 'copyItem')}} 
{{/each}} 
+0

谢谢!必须使用第二种方法。 – Jonathan

相关问题