如何合併2個對象與Angular 2?Angular 2 - 合併(擴展)對象
在AngularJS 1,我們有 「合併」 和 「擴展」 功能: https://docs.angularjs.org/api/ng/function/angular.merge https://docs.angularjs.org/api/ng/function/angular.extend
但顯然沒有在角2!
你有什麼想法嗎?
謝謝!
如何合併2個對象與Angular 2?Angular 2 - 合併(擴展)對象
在AngularJS 1,我們有 「合併」 和 「擴展」 功能: https://docs.angularjs.org/api/ng/function/angular.merge https://docs.angularjs.org/api/ng/function/angular.extend
但顯然沒有在角2!
你有什麼想法嗎?
謝謝!
根據MDN, Object.assign()通過IE瀏覽器和Android不支持呢。如果你安裝的2.1或更高的打字稿版本雖然,你可以使用Object Spread代替:
let obj = { x: 1, y: "string" };
var newObj = {...obj, z: 3, y: 4}; // { x: number, y: number, z: number }
如果你不想使用打字稿,那麼這裏從打字稿的轉換到上述的javascript 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 });
您可以使用下劃線/ lodash庫。 https://lodash.com/docs#merge
只需將它包含在您的angular2/4堆棧中即可。
此問題解釋如何:Importing lodash into angular2 + typescript application
請注意IE瀏覽器。根據MDN,它不被支持。 – lukeatdesignworks
Android瀏覽器不支持這一點:http://kangax.github.io/compat-table/es6/#test-Object_static_methods_Object.assign – Chris
如果您使用的是Angular-CLI,請查找「poyfills.ts'和取消註釋支持IE9-11的代碼。 – shammelburg