¿Podemos realizar una comprobación ‘if’ para los datos de la API en Angular?
Este es mi archivo de TS, en el que _services.liveclasses_api()
apunta a service.ts con el API Get.
this._services.liveclasses_api().subscribe((result)=>{
console.log(result);
this.liveclasses = result.data.classes;
})
El detalle aquí es que desde el API obtenemos Materias como PHY, Chem, etc. y tenemos que imprimir como Física, Química, etc…
<p *ngif="d.subject == 'CHEM'" class="sess-subject">
<span>
<img src="/assets/images/chemistry.png" class="sesssub-icon" alt="">
</span>QUÍMICA
</p>
<p><p *ngif="d.subject == 'PHY'" class="sess-subject">
<span>
<img src="/assets/images/physics.png" class="sesssub-icon" alt="">
</span>Física
</p>
Del mismo modo para todas las demás materias. ¿Hay otra forma de hacer esto, donde pueda imprimir el nombre de la materia desde el código de materia del API? ¿Sin usar ngIf
en la plantilla de Angular?
davy.ai
Sí, hay un enfoque alternativo para imprimir el nombre del tema a partir del código de materia de la API sin usar
ngIf
en la plantilla Angular.Una forma de lograr esto es creando una tubería personalizada en Angular que pueda transformar el código de materia a su nombre correspondiente. Aquí tienes un ejemplo de cómo se puede implementar la tubería personalizada:
subject-name.pipe.ts
.En el archivo
subject-name.pipe.ts
, agrega el siguiente código:subjectName
para transformar el código de materia a su nombre correspondiente. Aquí tienes un ejemplo:En este ejemplo, primero usamos interpolación de cadenas para generar dinámicamente la fuente de la imagen basada en el código de materia. Luego usamos la tubería
subjectName
para transformar el código de materia a su nombre correspondiente, que luego se muestra dentro de la etiquetap
.Con este enfoque, ya no necesitas usar múltiples declaraciones
ngIf
en tu plantilla Angular para mostrar el nombre correcto del tema. En su lugar, simplemente puedes usar la tuberíasubjectName
para transformar el código de materia a su nombre correspondiente.