Lo que quiero hacer: estoy tratando de obtener datos de mi api strapi y mostrarlos.
Con qué estoy trabajando: estoy trabajando con Angular, Strapi (v4) y Akita, en los que soy completamente nuevo y estoy usando el servicio de entidad akita.
Recuperar los datos funciona, pero no puedo mostrarlos. El tipo de colección que estoy tratando de mostrar se llama question y tiene el name de atributo. Hay 3 preguntas.
Este es mi archivo de componentes:
export class HomePage { public questions$: Observable<Array<Question>> | undefined; constructor( protected readonly questionsService: QuestionsService, protected readonly questionsQuery: QuestionsQuery, ) { this.questionsService.get() .subscribe(console.log); this.questions$ = this.questionsQuery.selectAll(); } } Este es mi archivo html. Aquí quiero mostrar la pregunta accediendo al atributo de name :
<ng-container *ngIf="(questions$ | async) as questions"> <p *ngFor="let question of questions; let i = index;"> Index: {{ i }} - Question: {{ question }} - id: {{ question.id }} <!--{{ question.attributes.name }} DOES NOT WORK.. Error Message: ERROR TypeError: Cannot read properties of undefined (reading 'name')--> </p> </ng-container>Así es como se ve mi modelo de pregunta (siento que aquí está el problema):
export interface Question { id?: number; attributes: { name: string; }; }Esto es lo que veo en mi interfaz:
Índice: 0 - Pregunta: [objeto Objeto],[objeto Objeto],[objeto Objeto] - id:
Índice: 1 - Pregunta: [objeto Objeto] - id:
Parece que las tres preguntas están en el primer índice de la matriz. Los datos que obtengo de la API se ven así: respuesta de datos de la API
Entonces parece que la propiedad de data está en el primer índice de la matriz y la matriz meta está en el segundo. Pero no sé qué hacer al respecto. ¿Algunas ideas? Lo que probé: cambiar el modelo, pero no tuvo ningún efecto.