У меня есть 2 многопозиционных списка в угловом, которые зависят от другого. Один из них - это родительский список, а один - дочерний список. При посадке в списке дочерних элементов ничего нет, и как только вы выберете (один или несколько) элементов из родительского multi-select, он затем заполнит дочерний список дочерними элементами выбранных элементов из родительского списка. Это отлично работает - только для справки. У меня есть $ watch на родительской модели, поэтому, когда она изменяется (пользователь выбирает что-то в родительском списке, он затем вызывает $ http и выводит результаты для списка детейУгловая, сравнивая 2 объекта и их заменяя (возможно, увязывая?)
как так -
$scope.$watch('selectedResources', function (newValue) {
angular.forEach($scope.selectedResources, function(data){
$scope.generalIDArray.push(data.id);
});
//id's = $scope.imageIDArray
//place new data in $scope.imageOptionsSub
$http({
method: 'POST',
url: '/listSubCategories',
data: {
page: 0,
ids: $scope.generalIDArray
}
})
.success(function(data){
//empty options
$scope.resourceOptionsSub = [];
//push new data in
angular.forEach(data.subCategories, function(index) {
$scope.resourceOptionsSub.push(index);
});
});
Итак - я толкаю все идентификаторы и отправить их, чтобы получить результаты обратно
Однако -.. вот моя проблема, я понял, после попытки этого, что я не хочу полностью заменить resourceOptionsSub всеми новыми результатами, поскольку пользователь взаимодействует с результатами дочернего процесса - у них есть значение .checked на них, что означает пользователь выбрал их, это будет уничтожено и обновлено каждый раз, когда я делаю новый вызов, потому что он освобождает область и заменяет ее, даже если это те же элементы.
Что бы я хотел, чтобы произошло сравнение, если есть элементы, которые уже существуют в resourceOptionsSub, которые входят с вызовом, и вроде сохранить исходный ресурсOptionsSub и сравнить его с новым, входящим, и возможно, снять предметы, которые больше не существуют?
Я думаю, что мне нужно как-то сравнить 2 объекта 1, являющихся оригиналом, 2 - новым, - и если 2 имеет что-либо 1, то не вытащить его из 1, потому что тогда я мог бы хранить предметы, которые такие же нетронутые. Если бы кто-нибудь мог указать мне в правильном направлении здесь, где искать, я бы это оценил, так как я немного потерял, как справиться с этим. Спасибо за прочтение!
Угловыми всегда поражает меня, как просто это делает вещи, спасибо! – ajmajmajma