我有2个角度变量,定义如下:
$scope.a = {
var1: value1,
var2: value2
};
$scope.b = {
var3: value3,
var4: value4
};
我正在尝试合并var1
和var2
,以使$scope.c
定义如下:
$scope.c = {
var1: value1,
var2: value2,
var3: value3,
var4: value4
};
我正在做$scope.a = $scope.b + $scope.c
,但没有得到期望的结果,我得到了"[object Object][object Object]"
的值$scope.c
。
答案 0 :(得分:4)
在串联对象时,可以使用ES6的spread syntax。
$scope.c = {...$scope.a, ...$scope.b};
或者使用AngularJs的angular.extend(),您可以达到相同的结果。
$scope.c = angular.extend($scope.a, $scope.b);
例如,
const a = {
var1: 'value1',
var2: 'value2'
} ;
const b = {
var3: 'value3',
var4: 'value4'
} ;
console.log({...a, ...b});
您也可以查看我制作的here演示。
答案 1 :(得分:2)
您可以为此使用Object.assign
$scope.c = Object.assign({},$scope.a,$scope.b)
答案 2 :(得分:1)
您可以使用传播运算符
合并两个对象 var clickerNumber = -1;
var button = document.getElementsByTagName("button")[0];
button.addEventListener("click", clickerCount());
function clickerCount(){
clickerNumber++;
console.log(clickerNumber);
}
,您还可以使用分配方法来实现。
$scope.c={...$scope.a,...$scope.b};