Как получить доступ к отсортированным строкам в сетке пользовательских интерфейсов Angular?

Я использую Angular UI Grid для отображения некоторых данных. Сортировка включена и инициализирована, а также выбор одной строки:

vm.gridOptions = {
    enableSorting: true,
    enableRowSelection: true,
    multiSelect: false,
    noUnselect: true,
    columnDefs: [
        { name: '#', field: 'ID' },
        { name: 'Name', field: 'CODE', sort: { direction: 'asc', priority: 1 } },
        { name: 'Comment', field: 'DESCR' },
    ],
    data: []
};

Я могу выбрать строку, и строки сортируются по столбцу "Имя" в порядке возрастания, как указано.

Как показано в Руководстве пользователя Grid Tutorial 210, я добавил логику для автоматического выбора первого элемента после того, как мои данные были загружены и добавлены в сетку:

datacontext.getAllGcTab(vm.filter).then(function (result) {
    vm.gridOptions.data = result.results;
    vm.gridApi.selection.selectRow(vm.gridOptions.data[0]);
});

Но этот код выбирает первый элемент несортированных данных. В моей сетке около 500 элементов, что мало и хорошо работает, но в этом случае выбранный элемент находится где-то по линии и невидимо.

Есть ли возможность прямого доступа к строкам или отсортированным данным сетки пользовательского интерфейса?

Я знаю, что внешняя сортировка может решить эту проблему, потому что тогда я бы назначил уже отсортированные данные в сетку. Но это кажется мне ненужным накладными расходами...

Ответ 1

$scope.gridApi.core.getVisibleRows() возвращает массив строк в текущем порядке сортировки/фильтрации.