私のプロジェクトでは、テーブルに 2 つの列があります。下の図で確認できます。
私が欲しいのは - 「非受領数量」列で、いくつかの値を変更すると、「注文数量」列に応じて影響します.Ex.最初の行では、非受領数量は4で、3に減らすと注文数量は 7 から 6 になります。非受信数量を 4 から 5 に増やすと、注文数量は 7 から 8 になります 。angularjs $watch を使用してそれを行うにはどうすればよいですか? 私のコード: 私のhtmlで--
<table class="table table-striped">
<thead>
<tr>
<th>Procuct Code</th>
<th>Product Name</th>
<th>Description</th>
<th>Unit Price</th>
<th>Order Quantity</th>
<th>Non Receive Quantity</th>
<th>Total</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="pr in prodDetails">
<td>{{pr.PRODUCTCODE}}</td>
<td>{{pr.PRODUCTNAME}}</td>
<td>{{pr.DESCRIPTION}}</td>
<td>
<div ng-class="{ 'has-error' : poForm.unitprice{{$index}}.$invalid && submitted }">
<input ng-model="pr.RATE" type="text" name="unitprice{{$index}}" ng-blur="getTotal(pr)" class="form-control input-sm" required />
</div>
</td>
<td>
<div ng-class="{ 'has-error' : poForm.poquantity{{$index}}.$invalid && submitted }">
<input type="text" ng-model="pr.POQUANTITY" name="poquantity{{$index}}" ng-blur="getTotal(pr)" class="form-control input-sm" required readonly/>
</div>
</td>
<td>
<div ng-class="{ 'has-error' : poForm.quantity{{$index}}.$invalid && submitted }">
<input type="text" ng-model="pr.QUANTITY" name="quantity{{$index}}" ng-blur="getTotal(pr)" class="form-control input-sm" ng-change="OrderQuantityChange(pr)" required />
</div>
</td>
<td>{{pr.TOTAL}}</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Total Quantity: {{po.TOTORDERQTY}}</td>
<td>Total Price: {{po.TOTALPRICE}}</td>
</tr>
</tbody>
</table>
prodDetails に入力する Controller データ内 --
function prepareProdDetail(detailLst)
{
scope.prodDetails = [];
//scope.prodDetailsCompare = [];
scope.products.forEach(function (prod)
{
var selProd = Enumerable.From(detailLst).FirstOrDefault(null, function (x) {
return x.PRODUCTCODE == prod.PRODUCTCODE;
});
if (selProd != null) {
prod.isSelect = true;
scope.prodDetails.push(selProd);
//scope.prodDetailsCompare.push(selProd);
}
else
{
prod.isSelect = false;
}
});
}
やりたいこと/こんなこと--
function OrderQuantityChange(row)
{
scope.$watch('row.POQUANTITY', function (newValue, oldValue) {
row.QUANTITY = row.QUANTITY+(oldValue - newValue);
});
}