javascript - 对 ng-repeat 中的行进行编号

标签 javascript angularjs angularjs-ng-repeat

我有一个表,其中有一个 ng-repeat 指令。它使用过滤器过滤掉属性 qty>0 的对象。我需要给一个序列号。到每一行。请注意,行不是固定的。如果用户更改产品的数量使其为 0,则该产品将从表中删除。

<table class="table table-striped">
    <tr>
    <th>S.no</th><th>Product Name</th><th>Qty</th><th>Sub-Total</th>
  </tr>
  <tr class="orders" ng-repeat="product in products" ng-if="product.qty">
    <td>{{$index}}</td><td>{{product.name}}</td><td> <input type="number" min="0" ng-blur="product.qty = qty" ng-model="qty" value="{{product.qty}}"> </td> <td>{{product.qty*product.price | currency:"&#8377;"}}</td>
  </tr>
</table>

现在,这段代码的问题在于,$index 给出了产品数组中产品的实际索引。我需要它在过滤后的数组中给出索引。我该怎么做?

最佳答案

您可以按如下方式预先过滤项目:

<tr class="orders" ng-repeat="product in filterItems(products)">
    <td>{{$index}}</td><td>{{product.name}}</td><td> <input type="number" min="0" ng-blur="product.qty = qty" ng-model="qty" value="{{product.qty}}"> </td> <td>{{product.qty*product.price | currency:"&#8377;"}}</td>
</tr>

Controller :

$scope.filterItems = function(items) {
    var filtered_items = [];
    angular.forEach(items, function(item) {
        if(item.qty > 0) {
            filtered_items.push(item)
        }
    })
    return filtered_items;
}

关于javascript - 对 ng-repeat 中的行进行编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33315223/

相关文章:

javascript - Angular ng-repeat 列表值分割

javascript - 如何使用 AngularJS 将一个 .js 文件用于多个 .html 页面

javascript - javascript 中的 JSESSIONID - Open Layers 3 如何获取它?

javascript - 检查 ng-repeat 中的条件

angularjs - Angular + Laravel + UI-Router 问题

angularjs - 在 django 模型中存储 ajax post 数据

javascript - 使用 Angular js ng-repeat 指令过滤 json 对象

javascript - 单击按钮在 Facebook 上发布文本

javascript - redux到底是什么?

javascript - 使用 angular.copy 实现 Angular 搜索