Introducción

angular.copy es una función que trae el framework AngularJS. Funciona para, como su nombre lo indica, copiar variables.

Cada que utilizamos angular.copy, ésta función devuelve una nueva copia exacta del objeto que le pasamos, pero sin mantener la referencia en el objeto original.

Así, aunque esta nueva copia sufra cambios, el original no se verá afectado. Y lo mismo pasa si el original sufre cambios

Demostración sin angular.copy

Para explicar mejor el funcionamiento, hagamos un pequeño ejemplo que guarde el nombre y la edad de las mascotas en un arreglo. Y luego, que lo dibuje en una tabla.

Como se puede ver, la primera mascota se guarda correctamente. Pero al querer guardar la segunda, o escribir en un input, todas las de la tabla sufren cambios. Esto es debido a que angular mantiene vigilados a los objetos, y como la referencia es la misma entonces actualiza a todos.

Justo en estos casos es cuando copy viene al rescate.

Demostración con angular.copy

Ahora probemos este, en donde sólo modificamos la línea en donde hacemos el push. En este caso, agregamos la copia del elemento al arreglo.

En conclusión, es bueno utilizar esta función si no queremos que los objetos sean los mismos y al actualizar uno se actualicen todos.

Apoya al sitio

¿Mi artículo te ha resultado útil? haz una donación. También pudes suscribirte a mi boletín semanal en la parte de abajo

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Relacionado:  Menú de navegación con Angular Material

Únete a otros 313 suscriptores


parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

1 Comment

Eliminar referencias de objetos en Javascript - Parzibyte's blog - El blog de Luis Cabrera · febrero 26, 2018 a las 7:21 pm

[…] Es decir, necesitaba crear una nueva copia de un objeto, sin mantener las referencias del original. Si no sabes a lo que me refiero, pásate por este post. […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: