Как остановить обновление оригинального списка при обновлении клонированного списка - PullRequest
0 голосов
/ 12 сентября 2018

Я хочу, чтобы self.lineDetails не обновлялся при обновлении self.modifiedLineDetails.

self.modifiedLineDetails = [];
angular.forEach(self.lineDetails, function (value1, index1) {
    var lineDetail = self.lineDetails[index1];
    self.modifiedLineDetails.push(lineDetail)
});
console.log(self.lineDetails)
angular.forEach(self.modifiedLineDetails, function (value10, index10) {
    var modifiedLineDetail = self.modifiedLineDetails[index10];
    if (modifiedLineDetail.SelectedCustomers.length > 0) {
        modifiedLineDetail.SelectedCustomers = 1;
    } else {
        modifiedLineDetail.SelectedCustomers = 0
    }
});
console.log(self.modifiedLineDetails)

Ранее я просто назначил его таким образом self.modifiedLineDetails = self.lineDetails, затем я обновил self.modifiedLineDetails, но это не былоработал, поэтому я попытался выдвинуть его на строку, но self.lineDetails продолжает обновляться.

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Так как проблема, кажется, возникает из-за того, что я использовал angular.Я исследовал и нашел angular.copy, который создает глубокую копию .Код ниже работал для меня.

self.modifiedLineDetails = angular.copy(self.lineDetails);
0 голосов
/ 12 сентября 2018

Вы должны клонировать массив и затем изменить ваш новый массив, один из способов сделать это - использовать операция разбрасывания ...

Вот пример этого:

var initialarray = [1,2,3,4];
var modification = [...initialarray];
modification.push(5);
console.log(initialarray);
console.log(modification);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...