AngularJS过滤器:使用AngularJS过滤器找出数组的索引

时间:2019-02-26 01:53:20

标签: angularjs angularjs-filter

我得到了以下数据数组:

$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

2 个答案:

答案 0 :(得分:0)

使用纯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格式,因此可以在代码段中运行以进行演示。您需要将其转换为Angular格式才能在您的项目中使用,但这只是一些编辑。

答案 1 :(得分:0)

如果要在表中显示它,则可以简单地将this.http.get('/assets/json/fake.json', { observe: 'body' }) .subscribe(result => { console.log(result); }); 传递给$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> domainName属性过滤表,则可以执行以下操作:

domainDescription