@Ufolob

Как правильно скопировать свойства объекта в anjular.js?

Задача стоит следующая. Имеются два массива: один с исходными ценами производителей(manufacturers) и другой с ценами, которые изменили под себя дилеры(datadiler). В коде ниже представлен участок кода, при котором переключается режим просчета для цен дилера. И соответственно я временно заменяю цену нужного свойства в рабочем массиве($scope.manufacturers), который участвует у меня в расчетах. Но почему-то свойство у массива manufacturers тоже заменяется: цена должна быть 10, а становится 500...хотя операций с этим объектом никаких не делается. Где зарылась собака?
$scope.manufacturers = manufacturers;
 $scope.datadilers = datadiler;
alert(manufacturers[$scope.order.manufacturer].series[$scope.order.series].euro[$scope.order.size].price);   // БЫЛО 10  
                $scope.manufacturers[$scope.order.manufacturer].series[$scope.order.series].euro[$scope.order.size].price = $scope.datadilers[$scope.order.manufacturer].series[$scope.order.series].euro[$scope.order.size].price;
                alert(manufacturers[$scope.order.manufacturer].series[$scope.order.series].euro[$scope.order.size].price);  // СТАЛО ПОЧЕМУ-ТО 500, ХОТЯ НЕ ДОЛЖНО
  • Вопрос задан
  • 46 просмотров
Решения вопроса 1
search
@search
мама говорит что я особенный
Чтобы было проще понять почему так происходит, попробуйте разобраться с понятием "присвоение по ссылке". Это базовая концепция многих языков. Без этого знания, использовать JS очень непросто.

Для того чтоб решить вашу проблему, можно сделать так:

$scope.manufacturers = angular.copy(manufacturers);
$scope.datadilers = angular.copy(datadiler);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы