Como passar vários dados do componente filho para o pai no Angular?

Marijan

Desejo passar o valor de "evento" e também o valor de "escolha" do evento para o serviço, para posteriormente usá-los em outro componente. Não tenho certeza de como obter o valor de "escolha" da criança do escopo ngFor para o componente pai e se isso é possível ou há outra maneira de fazer isso?

Acabei de começar a aprender Angular, então se eu estiver fazendo algo errado aqui, me avise, eu agradeço!

events.component.html

<div class="league" *ngFor="let league of events.locations[0].leagues">
  <h1>{{ league.name }}</h1>
  <div class="events" *ngFor="let eventsByDay of league.eventDateGroups">
    <div class="day-market">
      <p class="date">{{ eventsByDay.date | date :'mediumDate' }}</p>
      <div class="main-markets">
        <p>1</p>
        <p>x</p>
        <p>2</p>
      </div>
    </div>
    <app-event *ngFor="let event of eventsByDay.events"
      [event]="event"
      [eventsByDay]="eventsByDay"
      (onAddToTicket)="addToTicket(event)"></app-event>
  </div>
</div>

events.component.ts

import { Component, OnInit } from '@angular/core';
import { EventsService } from 'src/app/services/events.service';
import { TicketService } from 'src/app/services/ticket.service';

@Component({
  selector: 'app-events',
  templateUrl: './events.component.html',
  styleUrls: ['./events.component.scss']
})
export class EventsComponent implements OnInit {
  events: any = [];

  constructor(
    private eventsService: EventsService, 
    private ticketService: TicketService
  ) { }

  ngOnInit(): void {
    this.eventsService.getEvents().subscribe(events => this.events = events);
  }

  addToTicket(event: any) {
    this.ticketService.addToTicket(event);
  }
}

event.component.html

<ul class="events-by-day">
  <li class="event">
    <div class="event-info">
      <h3>{{ event.fixture.participants[0].name }} | 
        {{ event.fixture.participants[1].name }}</h3>
      <p>{{ event.fixture.startDate | date :'shortTime' }}</p>
    </div>
    <div class="markets" *ngFor="let market of event.markets | filter: 1">
      <p class="pick" *ngFor="let pick of market.picks"
        (click)="onQuotaClick(event)" >
        {{ market.marketId == 1 ? pick.odds : ''}}</p>
    </div>
  </li>
</ul>

event.component.ts

import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';

@Component({
  selector: 'app-event',
  templateUrl: './event.component.html',
  styleUrls: ['./event.component.scss']
})
export class EventComponent implements OnInit {
  @Input() event: any;
  @Input() eventsByDay: any;
  @Output() onAddToTicket: EventEmitter<any> = new EventEmitter();

  constructor() { }

  ngOnInit(): void {
  }

  onQuotaClick(event: any) {
    this.onAddToTicket.emit(event);
  }
}
Gaël J

Sim você pode.

A maneira mais direta é emitir um objeto envolvendo o evente o pick.

Por exemplo, no HTML:

(click)="onQuotaClick({event: event, pick: pick})"

E propague este tipo em {event:any; pick: any}todas as funções.

Observe também que você não deve usar anymas tipos reais, caso contrário, você perderá toda a segurança que o Typescript oferece.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como passar dados do componente filho para o pai [Angular]

Como passar dados do componente angular filho para o pai

Como passar dados únicos do componente filho para o pai?

Como passar dados do componente filho para o componente pai no Angular4

Como passar dados do componente pai para o filho no Angular 4

Como passar dados do componente filho (o filho tem seu próprio estado) para o pai?

Angular ExpressionChangedAfterItHasBeenCheckedError ao passar dados do componente pai para o componente filho usando o mapa

Como passar dados do componente filho para seu pai no ReactJS?

Como passar dados assíncronos para o componente filho do componente pai?

Erro de HTML ao passar dados do componente pai para o componente filho no Angular

Passar dados do componente filho para o componente pai Angular2

Como compartilhar os dados do componente pai para vários componentes filho no Angular?

vue js como passar dados do pai, lista v-for loop para o componente filho com o método

VueJS - Como passar os dados de resposta do Axios do componente pai para o filho?

Como passar os dados do formulário do componente pai para o filho?

Como passar o valor do componente filho para o pai

Como passar dois argumentos para uma função de componente pai do componente filho angular 7?

Como posso passar os objetos do componente Pai para o componente Filho no Angular 2?

Como passar dados do componente filho para o pai usando ganchos de reação

Como posso passar os mesmos dados várias vezes do pai para o componente no Angular?

Saiba como passar os dados do componente pai e filho para o método

Como passar dados do componente filho para o pai no React.JS?

Como passar o estado do componente pai para filho

Como passar o valor de entrada do componente pai para o filho sem usar ng no angular?

Como passar vários adereços do componente pai para filho no Vue

Como passar vários adereços do componente pai para filho no Vue

Passar dados do filho para o pai?

Angular 2 passando dados do componente pai para o filho

Como passar dados de filho para pai, se o componente dinâmico for filho

TOP lista

quentelabel

Arquivo