【问题标题】:AngularJS filter: find out index of array using AngularJS FilterAngularJS 过滤器:使用 AngularJS 过滤器找出数组的索引
【发布时间】:2019-02-26 01:53:20
【问题描述】:

我得到了这个数据数组:

$scope.domainRows = [
  { domainName: 'example1.com', domainDescription: 'example1.com desc'},
  { domainName: 'example2.com', domainDescription: 'example2.com desc'},

];

这些行在 UI 上显示为表格,用户点击删除 row2 和 row2 有此信息

{ domainName: 'example2.com', domainDescription: 'example2.com desc'}

无论如何我可以使用 AngularJS 过滤器来获取 row2 的索引吗?应该有办法在 AngularJS 过滤器中做到这一点,但无法弄清楚。需要你的帮助。 谢谢 -k

【问题讨论】:

  • 你可以使用 $index 使用 ng-repeat

标签: angularjs angularjs-filter


【解决方案1】:

使用纯 JavaScript。

const domainRows = [
  { domainName: 'example1.com', domainDescription: 'example1.com desc'},
  { domainName: 'example2.com', domainDescription: 'example2.com desc'}
]
let selectedRow = { domainName: 'example2.com', domainDescription: 'example2.com desc'}
for (let i = 0; i < domainRows.length; i++){
  if (domainRows[i].domainName === selectedRow.domainName){
    console.log(i)
  }
}

代码采用原生 JavaScript 格式,因此可以在 sn-p 上运行以进行演示。您需要将其转换为 Angular 格式以在您的项目中使用,但这只是一个小小的修改。

【讨论】:

    【解决方案2】:

    如果您在表格中显示它,您可以简单地将$index 传递给ng-click 指令以获得这样的行索引:

    <tr ng-repeat="row in domainRows" ng-click="performAction($index)">
      <td>{{ $index + 1 }}</td>
      <td>{{ row.domainName }}</td>
      <td>{{ row.domainDescription }}</td>
    </tr>
    

    如果您想通过 domainNamedomainDescription 属性过滤表格,那么您可以执行以下操作:

    <label>Any: <input ng-model="search.$"></label>
    <label>Name: <input ng-model="search.domainName"></label>
    <label>Description: <input ng-model="search.domainDescription"></label>
    
    <tr ng-repeat="row in domainRows | filter:search" ng-click="performAction($index)">
      <td>{{ $index + 1 }}</td>
      <td>{{ row.domainName }}</td>
      <td>{{ row.domainDescription }}</td>
    </tr>
    

    【讨论】:

    • 谢谢 - 实际上我使用 ngx-data-table 而不是 ng-repeat 显示表格。
    • 所以你使用的是 angular 而不是 angularjs?
    猜你喜欢
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多