Append de dados em outro componente | Fórum | School of Net

Deseja poder participar de nosso fórum e tirar todas as suas dúvidas?
Clique aqui e assine nosso plano de acesso ilimitado. Saiba mais.

por Cleiton

6 dias, 9 horas atrás Cleiton

Append de dados em outro componente

Estou com uma dúvida e não achei nenhuma solução para isso. Nem sei se a forma que estou tentando é a melhor forma. Tenho um sidebar.componente.ts com alguns campos para pesquisa e tenho um modulo anuncio.module.ts, que por sua vez possui um anuncio.component.ts anuncio ``` import { Component, OnInit } from '@angular/core'; import { AppHttpService } from '../../../../app-http.service'; @Component({ selector: 'app-anuncio-list', templateUrl: './anuncio-list.component.html', styleUrls: ['./anuncio-list.component.css'] }) export class AnuncioListComponent implements OnInit { private anuncios: any; constructor(private service: AppHttpService) { } ngOnInit() { } list(filtros) { this.service.build('usuarios' + filtros).list().subscribe((data) => { this.anuncios = data; }); } ``` Sidebar ``` import { Component, OnInit } from '@angular/core'; import { AppHttpService } from '../../../app-http.service'; import { AnuncioListComponent } from "../../../modules/anuncios/components/anuncio-list/anuncio-list.component"; @Component({ selector: 'app-sidebar-filters', templateUrl: './sidebar-filters.component.html', styleUrls: ['./sidebar-filters.component.css'] }) export class SidebarFiltersComponent implements OnInit { private anuncio: object = {}; constructor(private service: AppHttpService, private anuncioComponent: AnuncioListComponent) { } ngOnInit() { } busca() { this.anuncios = this.anuncioComponent.list(this.anuncio); } ``` Eu estou fazendo o import do anuncios.componente, e então eu consigo acessar as funções do anuncio dentro do sidebar.componente. Tudo está funcionando, e quando eu debugo a função no anuncio.componente, a variável anuncio é preenchida corretamente, ou seja, com dados da busca realizada. Porém, o componente não é redenrizado com esses dados, esses dados não são carregados na tela. Se eu chamo essa função diretamente no meu anuncio.componente, tudo funciona perfeitamente. Como eu poderia fazer, para apertar um botão na minha sidebar, e sem perder os dados que já estão carregados, "appendar" os dados no meu anuncio.componente? Imaginei com o Route, passando parametros. Porém, imagino que quando chamar o route, ele vai apagar tudo e carregar novamente.

4 Respostas