Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么AngularJS控制器中的另一个变量发生变化?_Javascript_Json_Angularjs_Getjson_Javascript Objects - Fatal编程技术网

Javascript 为什么AngularJS控制器中的另一个变量发生变化?

Javascript 为什么AngularJS控制器中的另一个变量发生变化?,javascript,json,angularjs,getjson,javascript-objects,Javascript,Json,Angularjs,Getjson,Javascript Objects,我有一个AngularJS控制器,如下所示: schedule.controller('schedule', ['$scope', '$http', function($scope, $http){ $http.get('/zt-api/business/admin/' + window.location.pathname.split('/')[2]).success(function(data){ $scope.admin_times = data; $

我有一个AngularJS控制器,如下所示:

schedule.controller('schedule', ['$scope', '$http', function($scope, $http){
    $http.get('/zt-api/business/admin/' + window.location.pathname.split('/')[2]).success(function(data){
        $scope.admin_times = data;
        $scope.admin_times_unix = data;
        $scope.weekDays = {'Saturday': "شنبه", 'Sunday': "یکشنبه", 'Monday': "دوشنبه", 'Tuesday': "سه شنبه",
            'Wednesday': "چهارشنبه", 'Thursday': "پنجشنبه", 'Friday': "جمعه"};
        angular.forEach($scope.admin_times, function (value, key) {
            angular.forEach(value, function (value2, key2) {
                angular.forEach(value2, function (value3, key3) {
                    angular.forEach(value3, function (value4, key4) {
                        angular.forEach(value4, function (value5, key5) {
                            var info = $scope.admin_times[key]["week_"+ key][key3].times[key5];
                            if (!isNaN(info)){
                                var myObj = $.parseJSON('{"date_created":"'+ $scope.admin_times[key]["week_"+ key][key3].times[key5] +'"}'),
                                myDate = new Date(1000*myObj.date_created);
                                $scope.admin_times[key]["week_"+ key][key3].times[key5] = myDate.toLocaleString().split(", ")[1]
                            }
                        });
                    });
                });
            });
        });
    });
}]);
我改变了
$scope.admin_times
,但我不知道为什么
$scope.admin_times\u unix
也会改变!
您能帮助我吗?

因为您正在为
管理时间
以及
管理时间
对象分配相同的
数据引用

这就是为什么一个对象的变化会影响另一个对象

您可以通过使用
angular.copy
解决此问题,它确实创建了一个新的引用,而不是指定其实际引用

$scope.admin_times_unix = angular.copy(data);

因为您将
数据的相同引用
分配给
admin\u times
以及
admin\u times\u unix
对象

这就是为什么一个对象的变化会影响另一个对象

您可以通过使用
angular.copy
解决此问题,它确实创建了一个新的引用,而不是指定其实际引用

$scope.admin_times_unix = angular.copy(data);
angular.forEach(值4,函数(值5,键5)>>您确实需要改进代码样式)angular.forEach(值4,函数(值5,键5)>>您确实需要改进代码样式)