Отправка действия из подкомпонента в родительский компонент в 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 ответ
Решение
Ты должен:
- Определите это действие (
copyItem
) в вашем контроллере (ItemIndexController). - Передайте это действие в цикле шаблона:
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}}