Отправка действия из подкомпонента в родительский компонент в Ember 2.2

Привет, я пытаюсь отправить действие из подкомпонента обратно в родительский компонент, чтобы он мог получить доступ к 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-list.js мне нужно определить действие, или я получаю ошибку, не определенную как действие. Отсюда this.store не определено, поэтому я пытаюсь вспомнить действие.

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

Отсюда я потерялся. Я попытался наложить действия на все следующее:

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

Но кажется, что он никогда не проходит вызов sendAction. Что я делаю неправильно?

1 ответ

Решение

Ты должен:

  1. Определите это действие (copyItem) в вашем контроллере (ItemIndexController).
  2. Передайте это действие в цикле шаблона:

1-й способ:

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

2-й способ:

{{#each model as |item|}}
    {{item-listing item=item copyItem=(action 'copyItem')}}
{{/each}}
Другие вопросы по тегам