У меня есть четыре набора переключателей, каждый из которых содержит четыре параметра, как показано в приведенном ниже коде:
<div *ngFor="let index of [0,1,2,3]">
<label *ngFor="let vehicle of vehicles" class="radio">
<input type="radio"
id="radio1"
[value]="vehicle"
(change)="updateValues(vehicles, formArray.value, index)"
name="vehicle" formControlName="vehicle">
{{vehicle.name}} ({{vehicle.total_no}})
</label>
</div>
Каждому транспортному средству в указанном выше наборе параметров присвоено имя и общее число.При выборе транспортного средства значение общего числа должно обновляться.Опция также должна быть отключена, если общее число равно нулю.
Я написал функцию, которая корректно обновляет значения, но, к сожалению, она также регистрирует изменения в других наборах переключателей.
updateValues(vehicles, form, index) {
let x;
let selectedVehicles = form.map(x => x.vehicle);
if (this._prevSelectedVehicles[index] === '') {
x = vehicles.indexOf(selectedVehicles[index]);
vehicles[x].total_no -= 1;
this._prevSelectedVehicles[index] = selectedVehicles[index];
this.updateTime(form, selectedVehicles);
} else if (
selectedVehicles[index].name !== this._prevSelectedVehicles[index].name
) {
x = vehicles.indexOf(this._prevSelectedVehicles[index]);
vehicles[x].total_no += 1;
x = vehicles.indexOf(selectedVehicles[index]);
vehicles[x].total_no -= 1;
this._prevSelectedVehicles[index] = selectedVehicles[index];
this.updateTime(form, selectedVehicles);
}
}
Как я могу убедиться, что значения, выбранные в предыдущих div, не обновляются?Также прикрепление макета, если вопрос неясен.
![enter image description here](https://i.stack.imgur.com/zFEr0.png)