当我改变一个变量的值时,另一个变量也在变化

Man*_*ngh 1 javascript arrays angularjs

我用下面的方法和输出数据插入到两个变量,当我改变$ 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!";
        });
});
Run Code Online (Sandbox Code Playgroud)

Pan*_*kar 6

目前,您直接将data对象引用分配给contactRoleForTrace&$scope.contactRole,因此任何更改都会自动更新$scope.contactRole/ 因为它们被绑定到同一引用(对象).datacontactRoleForTracedata

您应该使用angular.copy哪个将创建data对象的克隆,因此contactRoleForTrace&$scope.contactRole将指向不同的引用.

contactRoleForTrace = angular.copy(data);
Run Code Online (Sandbox Code Playgroud)