我有两个对象:$scope.objectA
和$scope.objectB
。
我将$scope.objectA
的值分配给$scope.objectB
,如下所示:
$scope.objectB.value1 = $scope.objectA.value1;
然后我将value1
的{{1}}改为$scope.objectB
;
null
我的问题是,当我将$scope.objectB.value1 = null;
分配给$scope.objectB.value1
时,null
也是$scope.objectA.value1
。如何在更改null
的价值时保持$scope.objectA.value1
的价值?
答案 0 :(得分:3)
复制对象B并将其指定给对象A.使用angular.copy函数。它将创建一个深层的源代码。
了解更多信息Visit Angular copy doc
$scope.objectA.value1 = angular.copy($scope.objectB.value1);
答案 1 :(得分:2)
因为这是它的工作原理。您将这两个变量“绑定”在一起。
如果您想保留objectA
的值,请使用
$scope.objectB.value1 = angular.copy($scope.objectA.value1);
答案 2 :(得分:1)
我认为只有当ObjectA和ObjectB引用堆上的同一个对象时才会发生这种情况,即ObjectA和ObjectB是相同的对象
- name: run container
docker:
registry: 172.20.20.20:5000
insecure_registry: true
image: pruebasjeje
state: reloaded
pull: always
ports:
- "8080:8080"
-
$scope['object1'] = {};
$scope['object1']['val'] = {};
$scope['object2'] = {};
$timeout(() => {
this.$scope['object2']['val'] = this.$scope['object1']['val'];
$timeout(() => {
this.$scope['object2']['val'] = null;
console.log(this.$scope['object1']['val']); // Object {}
})
});
答案 3 :(得分:1)