在Ember 2.2中将子组件中的操作发送到父组件

时间:2016-02-07 16:15:02

标签: javascript ember.js ember-components

您好我正在尝试将子组件中的操作发送回父组件,以便它可以访问this.store并执行数据库操作。基本布局是:

app / templates / item / 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调用。我做错了什么?

1 个答案:

答案 0 :(得分:2)

你必须:

  1. 在控制器中定义该操作(Host: 127.0.0.1 Login: vagrant Password: vagrant Port: 2222 )(ItemIndexController)。
  2. 在模板循环中传递该操作:
  3. 第一种方式:

    copyItem
    第二种方式:

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