Как удалить определенное значение, если другое значение очищено? | AngularJs - PullRequest
0 голосов
/ 08 мая 2018

У меня есть форма, в которой пользователь выбирает товары и устанавливает их количество, а цена автоматически рассчитывается с помощью 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]`

большое спасибо за любую помощь.

...