tad*_*aa9 34 javascript angularjs angular
如何将2个对象与Angular 2合并?
在AngularJS 1中,我们有"merge"和"extend"函数:https : //docs.angularjs.org/api/ng/function/angular.merge https://docs.angularjs.org/api/ng/function/ angular.extend
但在Angular 2中显然没什么!
你有好主意吗?
谢谢!
Gün*_*uer 30
Angular2不提供这样的东西.
你可以使用例如Object.assign()
Object.assign(target, source_1, ..., source_n)
Run Code Online (Sandbox Code Playgroud)
m.s*_*tos 27
在Angular中使用javascript的Object.assign()的方法:
const obj = Object.assign({}, object1, object2);
Run Code Online (Sandbox Code Playgroud)
请注意,IE和Android尚不支持它.
您有三种跨浏览器支持选项:
1. Angular CLI
如果您使用Angular CLI的最新Angular版本,则打开/src/polyfills.ts并取消注释以下行:
// import 'core-js/es6/object';
Run Code Online (Sandbox Code Playgroud)
这将启用Object polyfill,它提供跨浏览器支持Object.assign().
打字稿
如果安装了Typescript 2.1或更高版本,则可以使用Object Spread:
const obj = {...object1, ...object2};
Run Code Online (Sandbox Code Playgroud)
3. Javascript
如果您不使用Angular CLI并且仍想使用Object.assign(),则可以将polyfill导入项目中.那里有很多,这里有几个:
Angular CLI用于其polyfill 的core-js npm包:
npm install core-js --save
Run Code Online (Sandbox Code Playgroud)
一个简单的填充工具从打字稿的转换为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;
};
Run Code Online (Sandbox Code Playgroud)
最后,MDN polyfill.
| 归档时间: |
|
| 查看次数: |
32561 次 |
| 最近记录: |