Concat $ scope变量

时间:2019-04-29 03:47:59

标签: javascript angularjs angularjs-directive angularjs-scope

我有2个角度变量,定义如下:

$scope.a = {
  var1: value1,
  var2: value2
};

$scope.b = {
  var3: value3,
  var4: value4
};

我正在尝试合并var1var2,以使$scope.c定义如下:

$scope.c = {
  var1: value1,
  var2: value2,
  var3: value3,
  var4: value4
};

我正在做$scope.a = $scope.b + $scope.c,但没有得到期望的结果,我得到了"[object Object][object Object]"的值$scope.c

3 个答案:

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