Angularjs ng-repeat query filter 清除用户输入值


saleItems = [
{
"id": 236,
"variant": "Oval Holder",
"mrp": "66.00"
},
{
"id": 237,
"variant": "Angle Holder",
"mrp": "52.00"
}
]

我的模板如下所示:

<input ng-model="$ctrl.query" />
<table>
<tr><th>Sale Invoice</th></tr>
<tr>
<th>No.</th>
<th>Item.</th>
<th>Quantity</th>
<th>Rate</th>
<th>Discount</th>
<th>Discount Amount</th>
<th>Total Amount</th>
</tr>
<tr ng-repeat="item in $ctrl.saleItems | filter:$ctrl.query | orderBy:$ctrl.orderProp">
<td ng-init="item.total_amount=0;item.sale_quantity =0">{{$index + 1}}</a></td>
<td>{{item.variant}}</td>
<td><input type="text" value="{{item.sale_quantity}}"></td>
<td class='amt'>{{item.mrp | currency : "₹" : 2}}</td>
<td class='amt' >{{item.total_amount | currency : "₹" : 2}}</td>
</tr>
<tr><td>{{$ctrl.sale_total_amount()}}</td></tr>
</table>

从上面的模板中可以看出,有一个用于item.sale_quantity的输入字段。但是$ctrl.queryng-repeat过滤器,如果我搜索item,行会被过滤。但是,清除查询筛选器后,用户在未筛选的行上输入的数据将丢失。无论是否过滤,如何在所有行上保留输入的数据?

您有以下 init 语句,该语句在每次呈现此列时清除总计和数量的值。

<td ng-init="item.total_amount=0;item.sale_quantity =0">{{$index + 1}}</a></td>

我建议在使用 for 循环加载数据时在控制器中初始化一次数组。

angular.forEach($scope.saleItems, function(value, key){
value.total_amount = 0;
value.sale_quantity  = 0;
});

相关内容

  • 没有找到相关文章