У меня есть форма, в которой пользователь выбирает товары и устанавливает их количество, а цена автоматически рассчитывается с помощью ng-value= quantity*price
. Моя проблема в том, что если пользователь очистит поле ввода элемента. другие значения ( количество и цена ) не удаляются программно.
Мой взгляд:
<tr ng-repeat="sellAcc in sellAccessories">
<td colspan="2">
<input type="text" id="sellAccessName{{$index}}"
list="sellAllaccessories{{$index}}"
ng-model="sellAccessories[0].name[$index]"
ng-change="getItemSellingPrice($index); isExistItem($index)" >
<datalist id="sellAllaccessories{{$index}}" >
<option ng-repeat="access in allAccessories" data-item="{{access.id}}" value="{{access.name}}">
</datalist>
</td>
<td colspan="1">
<input type="number" ng-model="sellAccessories[0].quantity[$index]">
</td>
<td colspan="2" >
<input type="text" ng-model="sellAccessories[0].total_price[$index]"
ng-value="sellAccessories[0].total_price[$index]=sellAccessories[0].quantity[$index] * access_s_price[$index]"
readonly>
</td>
</tr>
JS:
$scope.sellAccessories=[{"id": [],"name": [], "quantity": [],"total_price": []}];
Я храню все значения в массиве, используя ng-model=sellAccess[0].name[$index]
, проблема в том, что если пользователь удалил имя элемента, то получится, что массив name
не будет равен quantity
и total price
. Предположим, что пользователь выбрал 4 элемента, а затем удалил элемент с количеством = 4, вот что произойдет:
name=["Nescafe","Pepsi","Tobacco"]`
quantity[1,4,2,5]`
пока должно быть:
name=["Nescafe","Pepsi","Tobacco"]`
quantity[1,2,5]`
большое спасибо за любую помощь.