gpt4 book ai didi

javascript - 为什么 AngularJS Controller 中的另一个变量会发生变化?

转载 作者:行者123 更新时间:2023-11-30 08:34:08 27 4
gpt4 key购买 nike

我有一个像下面这样的 AngularJS Controller :

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_unix也改了!你能帮帮我吗?

最佳答案

因为您将 data 的相同引用分配给 admin_times 以及 admin_times_unix 对象。

这就是为什么改变一个对象会影响另一个对象。

您可以通过使用 angular.copy 来解决这个问题,它会创建一个新的引用而不是分配它的实际引用。

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

关于javascript - 为什么 AngularJS Controller 中的另一个变量会发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33657427/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com