Concat $ переменные области видимости - PullRequest
1 голос
/ 29 апреля 2019

У меня есть 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.

Ответы [ 3 ]

4 голосов
/ 29 апреля 2019

Вы можете использовать ES6 расширенный синтаксис , когда дело доходит до объединения объектов.

$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});

Вы также можете посмотреть демонстрацию, которую я сделал здесь .

2 голосов
/ 29 апреля 2019

Вы можете использовать Object.assign Для этого

$scope.c = Object.assign({},$scope.a,$scope.b)
1 голос
/ 29 апреля 2019

Вы можете использовать оператор распространения для объединения двух объектов по

$scope.c={...$scope.a,...$scope.b};

и вы также можете реализовать метод присвоения.

$scope.c=Object.assign($scope.a,$scope.b);

...