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 .
Puede utilizar la biblioteca de subrayado / lodash. https://lodash.com/docs#merge
Solo inclúyelo en tu pila angular2 / 4.
Esta pregunta explica cómo: importar lodash en la aplicación mecanografiada angular2 +