Я пытаюсь получить значение некоторых входных данных, которые зависят от данных из других входных данных. Я считаю, что для этого мне нужны часы, но я не уверен, потому что все, что я пробовал, терпит неудачу с ошибками, с которыми я понятия не имею, как с ними бороться.
У меня есть форма оптового заказа с пятью полями в нескольких строках, например.
code | quantity | price | discount % | total 1 |
code | quantity | price | discount % | total 2 |
code | quantity | price | discount % | total 3 |
code | quantity | price | discount % | total 4 |
Столбец «Код» — это автоматически заполняемый список кодов продуктов, которые при нажатии заполняют столбец «Цена». Затем, когда количество и скидка настраиваются, общий столбец обновляется.
Итого отображается исключительно для пользователя, но мгновенно обновляется при изменении любого из 3 предыдущих входов. Я пытаюсь получить промежуточную сумму всех итогов, отображаемых для пользователя. Вот некоторые из моих попыток посмотреть итоги.
Вот плункер http://embed.plnkr.co/XdGjHy
Вот мои входы. Это взято из цикла php for, который выводит 100 строк.
<tr>
<td class="td-code"><input id="code'.$i.'" name="code'.$i.'" type="text" class="code'.$i.' order-code" value="'.@$orderItem->{'code'.$i}.'" /></td>
<td class="td-price"><input ng-model="price'.$i.'" class="order-price" id="price'.$i.'" name="price'.$i.'" type="number" value="'.@$orderItem->{'price'.$i}.'" step="0.50"/></td>
<td class="td-quantity"><input ng-model="quantity'.$i.'" class="order-price" id="quantity'.$i.'" name="quantity'.$i.'" type="number" value="'.@$orderItem->{'quantity'.$i}.'" /></td>
<td class="td-discount"><input ng-model="discount'.$i.'" class="order-price" id="discount'.$i.'" name="discount'.$i.'" type="number" value="'.@$orderItem->{'discount'.$i}.'" /></td>
<td class="td-total"><span class="row-total" ng-model="total'.$i.'" id="total'.$i.'" class="order-price" id="total'.$i.'" valid-number/>{{(price'.$i.' * quantity'.$i.') / 100 * (100 - discount'.$i.') | number:2}}</span></td>
</tr>
Пример одного из часов, которые ничего не возвращают для меня. Я просто пытаюсь хотя бы сложить первые две суммы вместе и отобразить их.
$scope.$watch("total1", function (newValue, oldValue) {
$scope.updated_info = $scope.total1 + $scope.total2;
});
Затем, когда я помещаю {{updated_info}} или {{scope.updated_info}}, я ничего не вижу.
Пример второго кода, который я поместил в приложение контроллера.
$scope.total = function() {
var total = parseFloat($scope.total1 || 0) + parseFloat($scope.total2 || 0) +
parseFloat($scope.total3 || 0) + parseFloat($scope.total4 || 0) +
parseFloat($scope.total5 || 0);
return total || 0;
};
Затем, когда я снова помещаю {{total}} или {{scope.total}}, я ничего не вижу.