How to merge objects?
For newer versions (at least 1.4.0) of angular you can use angular.merge
Unlike extend(), merge() recursively descends into object properties of source objects, performing a deep copy.
Copy
var src = { name: 'Apple', price: 5};
var dst= angular.copy(src);
- deep copy
Extend:
var mergedObject = angular.extend(dst, src1, src2, ...)
- shallow copy
Merge:
var mergedObject = angular.merge(dst, src);
- since angular 1.4+
- deep (recursively) copy
If you want to not overwrite with null, you can use this.
Object.assign():
let movie2 = Object.assign({}, movie1, { episode: 8 });
- fot Angular 2+ (ECMAScript 6)
Sources:
https://docs.angularjs.org/api/ng/function
http://davidcai.github.io/blog/posts/copy-vs-extend-vs-merge/