Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

247
Visualizações
*ngFor no muestra datos de la API

Estoy trabajando en un proyecto escolar. El front-end se comunica con la API y los resultados se muestran en la consola del navegador:

Resultados mostrados en el archivo console.log

esta es la interfaz

 export interface Anuncios { id: number; AnuncioTipo: string; AnuncioAssunto: string; AnuncioDescricao: string;}

este es el archivo ts:

 import { Component, OnInit } from '@angular/core'; import { AnunciosService } from '../../services/anuncios.service'; import { Anuncios } from '../../interfaces/anuncios'; @Component({ selector: 'app-index', templateUrl: './index.component.html', styleUrls: ['./index.component.css'] }) export class IndexComponent implements OnInit { anuncios: Anuncios[] = []; constructor(public anunciosService: AnunciosService) { } ngOnInit(): void { this.anunciosService.getAll().subscribe((data: Anuncios[]) => { this.anuncios = data; console.log(this.anuncios); }); } }

este es el archivo html:

 <div class="container-fluid"> <h1>Todos os anuncios</h1> <a href="#" routerLink="/anuncios/create" class="btn btn-sucess">Criar novo anuncio</a> </div> <div> <ng-container *ngFor="let anuncio of anuncios"> <p>ID: {{ anuncio.id }}</p> <p>Tipo: {{ anuncio.AnuncioTipo }}</p> <p>Assunto: {{ anuncio.AnuncioAssunto }}</p> <p>Descrição: {{ anuncio.AnuncioDescricao }}</p> </ng-container> </div>

Resultados mostrados en la aplicación, solo muestra el ID

La aplicación no muestra los datos recopilados de la API web, ¿cómo puedo solucionarlo?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Los resultados de la API en la captura de pantalla muestran que las claves de objeto están en camelCase , pero su interfaz las tiene en TitleCase .

Si eso no resuelve el problema, entonces algunos otros problemas podrían ser:

  • La API arroja un error, por lo que catchError(this.errorHandler) dentro del método getAll() devuelve una matriz vacía.
  • La ChangeDetectionStrategy del componente o del componente principal se establece en OnPush . Aunque no debería crear este problema específico aquí, pero nunca se sabe.

Primero verifique si hay un error en el método AnunciosService.getAll() . Si no hay ninguno, puede intentar usar una tubería async . De esa manera, supera la detección de cambios y también cierra la transmisión automáticamente contra una posible pérdida de memoria.

 import { Component } from '@angular/core'; import { AnunciosService } from '../../services/anuncios.service'; import { Anuncios } from '../../interfaces/anuncios'; import { Observable } from 'rxjs'; @Component({ selector: 'app-index', templateUrl: './index.component.html', styleUrls: ['./index.component.css'] }) export class IndexComponent { anuncios$: Observable<Anuncios[]> = this.anunciosService.getAll(); constructor(public anunciosService: AnunciosService) { } }

Modelo:

 <div> <ng-container *ngFor="let anuncio of anuncios$ | async"> <!-- use async --> <p>ID: {{ anuncio.id }}</p> <p>Tipo: {{ anuncio.AnuncioTipo }}</p> <p>Assunto: {{ anuncio.AnuncioAssunto }}</p> <p>Descrição: {{ anuncio.AnuncioDescricao }}</p> </ng-container> </div>
about 4 years ago · Juan Pablo Isaza Relatório

0

Las propiedades de su interfaz (en este caso) deben coincidir con las propiedades que provienen de la API, todas comienzan con minúsculas (camelCase) de la API, como se ve en el registro de la consola.

intenta cambiar tu interfaz a esta

 export interface Anuncios { id: number; anuncioTipo: string; anuncioAssunto: string; anuncioDescricao: string; }

y tu html a esto

 <ng-container *ngFor="let anuncio of anuncios"> <p>ID: {{ anuncio.id }}</p> <p>Tipo: {{ anuncio.anuncioTipo }}</p> <p>Assunto: {{ anuncio.anuncioAssunto }}</p> <p>Descrição: {{ anuncio.anuncioDescricao }}</p> </ng-container>
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda