Ten en cuenta que en las ciencias cualquier problema casi siempre tiene diversas soluciones, por lo tanto aquí enseñamos lo más óptimo y eficiente.
Solución:
No puede definir funciones en expresiones angulares. Así que tienes que usar tubería en cambio, que están optimizados para las plantillas. Son reutilizables en otros componentes.
jsonCon un tubo de arranque:
@Pipe(name: 'pluck') export class PluckPipe implements PipeTransform transform (input: any[], key: string): any return input.map(value => value[key]);
No se recomienda llamar a funciones en el componente para calcular valores para la plantilla. Esta se mueve trabajar desde el componente a la plantilla, y si necesita datos para ser mutado entonces haz ese trabajo en
ngOnInit()
o enngOnChanges()
en lugar de.Las tuberías tienen pureza lo que significa que se ejecutan solo cuando los datos entrantes son mutado. Cuando llamas a una función como
doWork(object.array)
entonces Angular no sabe si la funcióndoWork()
es puro O no. Entonces asume que no es puro y lo llama para cada detección de cambio.Actualizado:
Cada vez que trabaje con matrices en Angular, debe tratarlas como inmutables. Donde crea una nueva instancia de ese Array cuando necesita modificarlo. Por ejemplo;
items = [...items, newItem];
en lugar deitems.push(newItems)
.Esto resuelve problemas de detección de cambios relacionados con tuberías, ngFor, detección de cambios OnPush y tiendas de estado.
https://medium.com/dailyjs/el-estado-de-inmutabilidad-169d2cd11310
podría encontrar algunas soluciones para que esto funcione, pero mi respuesta es que no debe hacer esto, ya que las llamadas a funciones en la plantilla afectan negativamente el rendimiento, al igual que las tuberías impuras que esto requeriría para ser confiables.
Considere en su lugar:
mappedArray = []; ngOnInit() this.mappedArray = object.array.map( (o)=> o.property ); mappedArray
limpio, confiable, fácil de leer/modificar y fácil de entender. También brinda un control más preciso sobre cuándo se evalúan sus funciones.
valoraciones y comentarios
Si guardas alguna desconfianza o forma de reaccionar nuestro tutorial te mencionamos añadir una explicación y con gusto lo observaremos.
¡Haz clic para puntuar esta entrada!(Votos: 0 Promedio: 0)Utiliza Nuestro Buscador