2016-04-03 10 views
21

कोणीय 2 के साथ 2 वस्तुओं को मर्ज कैसे करें?कोणीय 2 - विलय (विस्तार) वस्तुओं

AngularJS 1 हम "मर्ज" और "विस्तार" कार्यों: https://docs.angularjs.org/api/ng/function/angular.merge https://docs.angularjs.org/api/ng/function/angular.extend

लेकिन जाहिरा तौर पर कोणीय 2 में कुछ भी नहीं!

क्या आपके पास कोई विचार है?

धन्यवाद!

उत्तर

24

कोणीय 2 इस तरह कुछ भी प्रदान नहीं करता है।

आप उदाहरण Object.assign()

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

आईई के साथ सावधान रहें। एमडीएन के मुताबिक यह समर्थित नहीं है। – lukeatdesignworks

+1

एंड्रॉइड ब्राउजर इसका समर्थन नहीं करता है: http://kangax.github.io/compat-table/es6/#test-Object_static_methods_Object.assign – Chris

+4

यदि आप कोणीय-सीएलआई का उपयोग कर रहे हैं, तो 'poyfills.ts' ढूंढें और IE9-11 का समर्थन करने वाले कोड को असम्बद्ध करें। – shammelburg

13

MDN, Object.assign() के अनुसार IE और एंड्रॉयड से अभी समर्थित नहीं है के लिए उपयोग कर सकते हैं। आप 2.1 या उच्चतर की एक टाइपप्रति संस्करण स्थापित हैं, हालांकि, आप Object Spread बजाय का उपयोग कर सकते हैं:

let obj = { x: 1, y: "string" }; 
var newObj = {...obj, z: 3, y: 4}; // { x: number, y: number, z: number } 

आप टाइपप्रति का उपयोग नहीं करना चाहते हैं, तो यहाँ एक simple polyfill जावास्क्रिप्ट में ऊपर की टाइपप्रति के रूपांतरण से है :

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; 
}; 

var obj = { x: 1, y: "string" }; 
var newObj = Object.assign({}, obj, { z: 3, y: 4 }); 

View on Typescript Playground

संबंधित मुद्दे