Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

337
Vistas
representación angular de niños antes de que se reciban los datos principales

Tengo un componente principal (app.component) que realiza una solicitud http, asignando el resultado como this.stats y luego pasándolo como accesorio al elemento secundario (progression.component). mi problema parece ser que mi hijo está procesando antes de obtener datos del padre, lo que hace que el niño arroje errores y se rompa.

es decir, obtengo -> {} [[Prototipo]]: Objeto cuando registro el accesorio en mi componente secundario

Simplemente no tengo experiencia, pero dado que todos mis componentes usan ngOnInit () y están suscritos a observables, ¿supongo que el niño debería estar esperando que el padre termine? No estoy seguro de cómo puedo arreglar algo como esto, ya que existe en todos los componentes y no es un caso en el que pueda fusionar los observables que pensaría ... cualquier idea sería increíble :) ¡gracias!

componente principal

 export class AppComponent { title = 'pctothemoon'; stats: any constructor(private specsService: SpecsService) {} ngOnInit(): void { this.specsService.getStats().subscribe((res)=>{this.stats=res}) } }

componente hijo

 export class ProgressionComponent { @Input() stats: any; oldStats: any; constructor(private specsService: SpecsService) { } ngOnInit(): void { this.specsService.getProgress().subscribe((res)=>{console.log(res)}) } AfterViewInit(){ this.specsService.postUpdates(this.stats).subscribe((res)=>{console.log("updated stats", res)}) } }

como referencia, también incluiré mi service.ts para mostrar mis solicitudes http en segundo plano

 export class SpecsService { private apiUrl = 'http://localhost:3000' constructor(private http:HttpClient) {} getStats():Observable<any>{ return this.http.get(`http://localhost:8888/fetchStats`) } postUpdates(stats):Observable<Object>{ //send stats to json server store const url = `${this.apiUrl}/progressionData`; //json server collection location return this.http.post(url,stats,httpOptions) + stats } getProgress(){ return this.http.get(`${this.apiUrl}/progressionData`) } }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La respuesta es muy simple. Simplemente envuelva el componente secundario dentro de un *ngIf en su HTML:

 <ng-container *ngIf="!!stats"> <app-child-component [stats]="stats"></app-child-component> </ng-container>

La condición será que los datos que el niño necesita estén disponibles. Aquí, el componente secundario no se creará hasta que los datos estén disponibles.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda