我在其中有一个输入表,允许用户编辑商品数量,当用户通过ng-change
输入数量时,计算帐单中所有商品的总价值。在ng-change
中,我将检查数量是否大于当前库存,我将其重置为旧值并且不更新总值(加上show msg err等.....)。 Everthing很好,但我唯一的问题是我无法使用模型进行输入更新。
<table st-table="goodsOfBillList" st-safe-src="sellDetailList" class="table table-striped">
<tr ng-repeat="row in goodsOfBillList" st-select-row="row" st-select-mode="single" ng-show="!sellBillCtrl.isLoading">
<td>
<input id="quantity" ng-model="row.quantity" ng-model-options="{ updateOn: 'blur' }"
placeholder="current stock : {{row.currentStock}}"
class="form-control input-md" required="" type="number" min="1" max="{{row.currentStock}}"
ng-change="updateTotal(row, '{{row.quantity}}')">
</td>
</tr>
</table>
当我输入如下图所示的无效值(50)时,数量会重置回先前的值(5),但模型中的输入不会更新
$scope.updateTotal = function (row, oldVal)
{
//because I set max value, if I input an invalid value, row.quantity become undefined
//Checked by using alert()
if(typeof row.quantity === "undefined")
{
row.quantity = oldVal;
alert(JSON.stringify(row));
return;
}
//logic if valid value
};
我在智能表中使用输入,而在boostrap模式中使用表