我通过使用以下方法从数据库中获取值并将输出数据插入到两个变量中,当我更改$ scope.contactRole中的值时,接触到的值为' contactRoleForTrace'也在改变,但我不想改变它。你能告诉我我该怎么办?
var contactRoleForTrace = [];
$scope.getUserRoles = (function () {
//Method to get data from database
intakeAppFactory.getRoles(item)
.success(function (data) {
contactRoleForTrace = data;
$scope.contactRole = data;
}).error(function (data, status) {
$scope.error = "An Error has occured!";
});
});
答案 0 :(得分:6)
目前,您直接将data
对象引用分配给contactRoleForTrace
& $scope.contactRole
,因此$scope.contactRole
/ data
发生的任何更改都会自动更新contactRoleForTrace
变量,因为它们与同一参考(data
对象)绑定。
您应该使用angular.copy
来创建data
对象的克隆,以及contactRoleForTrace
& $scope.contactRole
将指向不同的参考。
contactRoleForTrace = angular.copy(data);