gpt4 book ai didi

javascript - 在 Ember 2.2 中将 Action 从子组件发送到父组件

转载 作者:行者123 更新时间:2023-11-30 16:17:37 24 4
gpt4 key购买 nike

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

app/templates/item/index.hbs -> 使用组件做一个项目循环

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

app/templates/components/item-listing.hbs

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

在 app/components/item-listing.js 中,我必须定义一个 Action ,否则我会得到一个 Action 未定义的错误。从这里 this.store 是未定义的,所以我试图冒泡这个 Action 。

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

从这里我迷路了。我已尝试对以下所有内容执行操作:

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

但它似乎永远不会通过 sendAction 调用。我做错了什么?

最佳答案

你必须:

  1. 在您的 Controller (ItemIndexController) 中定义该操作 (copyItem)。
  2. 在模板循环中传递该操作:

第一种方式:

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

第二种方式:

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

关于javascript - 在 Ember 2.2 中将 Action 从子组件发送到父组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35255823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com