page español change angular2 javascript angularjs angular

javascript - español - Angular 2-Fusionar(extender) objetos



router events subscribe angular 4 (3)

Angular2 no proporciona nada como esto.

Puedes usar por ejemplo Object.assign()

Object.assign(target, source_1, ..., source_n)

¿Cómo fusionar 2 objetos con angular 2?

En AngularJS 1 tenemos las funciones "fusionar" y "extender": https://docs.angularjs.org/api/ng/function/angular.merge https://docs.angularjs.org/api/ng/function/angular.extend

Pero aparentemente nada en Angular 2!

¿Tienes una idea?

¡Gracias!


La forma de hacerlo en Angular es con Object.assign() javascript:

const obj = Object.assign({}, object1, object2);

Tenga en cuenta que aún no es compatible con IE y Android.
Tienes tres opciones para la compatibilidad con varios navegadores:

1. CLI angular

Si está utilizando las últimas versiones de Angular con CLI angular, abra /src/polyfills.ts y /src/polyfills.ts comentario de la siguiente línea:

// import ''core-js/es6/object'';

Esto habilitará el relleno de objetos que proporciona compatibilidad con Object.assign() navegadores para Object.assign() .

2. mecanografía

Si tiene instalada la versión 2.1 o superior de Typescript, puede usar Object Spread :

const obj = {...object1, ...object2};

3. Javascript

Si no usa la CLI angular y aún desea usar Object.assign (), puede importar un polyfill a su proyecto. Hay muchos por ahí y aquí hay algunos:

El paquete core-js npm que Angular CLI utiliza para sus rellenos automáticos :

npm install core-js --save

Un polyfill simple de la conversión de Typescript a javascript:

Object.assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; };

Y por último, el polyfill de MDN .