Фильтр AngularJS: узнать индекс массива с помощью фильтра AngularJS - PullRequest
0 голосов
/ 26 февраля 2019

Я получил этот массив данных:

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

];

Эти строки отображаются в виде таблицы на пользовательском интерфейсе, и пользователь нажимает на кнопку удаления строки 2 и строки 2 имеет эту информацию

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

Есть ли в любом случаечто я могу использовать фильтр AngularJS, чтобы получить индекс row2?Должен быть способ сделать это в фильтре AngularJS, но не смог понять.Нужна ваша помощь.Спасибо -k

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Если вы отображаете его в таблице, вы можете просто передать $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, тогда вы можете сделать что-то вроде этого:

<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>
0 голосов
/ 26 февраля 2019

С чистым 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, поэтому его можно запустить на фрагменте для демонстрации.Вам нужно преобразовать его в угловой формат для использования в вашем проекте, но это всего лишь небольшое редактирование.

...