Задать вопрос
@Artem0071
Безработный mr. Junior

Как передать массив в родительский элемент?

Добрый день!

Пытаюсь изучить Angular. Все шло хорошо до этого момента, а именно общение компонентов между собой.

Вот у меня есть 2 компонента:
app.component.ts
import { Component} from '@angular/core';

@Component({
    moduleId: module.id,
    selector: 'my-app',
    templateUrl: 'app.component.html'
})
export class AppComponent {

    myArr: any = [];

    myBTN(){
        console.log(this.myArr); // посмотреть что в массиве
    }

    onSetArr(newArr){
        this.myArr = newArr;
        console.log('123'); // чтобы видеть выполняется ли
    }
}


и child.component.ts
import { Component, OnInit, Output,EventEmitter} from '@angular/core';
import { Response} from '@angular/http';
import { HttpService} from '../../services/http.service';

@Component({
    moduleId: module.id,
    selector: 'child-app',
    templateUrl: 'child.component.html',
    providers: [HttpService]
})
export class AudiosComponent implements OnInit {
    myArr: any = [];
    constructor(private httpService: HttpService){}

    ngOnInit(){
        this.httpService.getData().subscribe((data: Response) => this. myArr =data.json());
    }

    @Output() onSetArr = new EventEmitter();

    setArr(newArr){
        this. onSetArr.emit(this. myArr);
    }
}


В итоге ничего не работает.. Ну то есть работает, ошибок никаких нет
Но в app.component ничего не передается((

Как вообще можно передать массив из дочернего элемента в родительский?
  • Вопрос задан
  • 467 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
mmmaaak
@mmmaaak
Когда в шаблоне родительского используете дочерний компонент, привязываете обработчик onSetAttr родителя к событию onSetAttr дочернего компонента? Там еще нужно параметр указать, чтоб данные из emit-а пробросились
<child-app (onSetAttr)="onSetAttr($event)"></child-app>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы