Используйте angular.copy
для создания глубокой копии:
const successFunction = function(response) {
$scope.TechSheetInfo = response.data;
$rootScope.customerInfo = response.data.Customer;
̶$̶s̶c̶o̶p̶e̶.̶T̶e̶c̶h̶S̶h̶e̶e̶t̶I̶n̶f̶o̶S̶t̶a̶t̶i̶c̶ ̶=̶ ̶r̶e̶s̶p̶o̶n̶s̶e̶.̶d̶a̶t̶a̶;̶
$scope.TechSheetInfoStatic = angular.copy(response.data);
$scope.TechSheetInfo.Customer.Email = "bobo@bobo.com";
alert(JSON.stringify($scope.TechSheetInfo.Customer));
alert(JSON.stringify($scope.TechSheetInfoStatic.Customer));
};
Поскольку response.data
является объектом.Оператор присваивания присваивает справочное значение переменной.Функция angular.copy
создаст новый объект и скопирует содержимое в новый объект.
Переменная, содержащая объект, не "непосредственно" удерживает объект.То, что он содержит, является ссылкой на объект.Когда вы назначаете эту ссылку из одной переменной в другую, вы создаете копию этой ссылки.Теперь обе переменные содержат ссылку на объект.Изменение объекта через эту ссылку изменяет его для обеих переменных, содержащих ссылку на этот объект.
Для получения дополнительной информации см. Передача по ссылке объектов JavaScript .