Это может быть очень специфический способ использования таблицы aurelia, но я хотел бы знать, есть ли какой-либо способ доступа к ключу, который вы определяете в параметрах aut-sort
в функции custom.bind
.
Вместо заполнения таблицы с использованием статического массива для data
я загружаю в массив JSON и динамически создаю таблицу на основе содержимого JSON, поэтому я не могу использовать aut-sort
, указывая на массив список значений.
Если бы я мог получить доступ только к значению ключа, основанному на столбце, который я щелкаю, чтобы отсортировать, то я смог бы использовать пользовательскую сортировку для своих нужд.
Я уже пытался определить глобальную строку и прикрепить обновление к этой строке, используя change.delegate
в заголовках таблицы Aurelia, но change.delegate
запускает после сортировки custom.bind
и * В любом случае функция 1016 * распространяется только на таблицу Aurelia.
<table aurelia-table="data.bind: data; display-data.bind: $resultsData; current-page.bind: currentPage; page-size.bind: pageSize; total-items.bind: totalItems; api.bind: tableApi;">
<thead>
<tr>
<th repeat.for="[k,v] of responseFields" aut-sort="custom.bind: someSort">${v.displayName}</th>
</tr>
</thead>
<tbody>
<tr repeat.for="result of $resultsData">
<td repeat.for="[k,v] of responseFields">
${result[k]}
</td>
</tr>
</tbody>
</table>
Map
просто позволяет мне динамически устанавливать заголовки.
А вот и функция сортировки:
someSort(a, b, sortOrder) {
let sortColumnName = this.sortColumnName;
let code1 = this.data[this.data.indexOf(a)][sortColumnName];
let code2 = this.data[this.data.indexOf(b)][sortColumnName];
if (code1 === code2) {
return 0;
}
if (code1 > code2) {
return 1 * sortOrder;
}
return -1 * sortOrder;
}
Я хотел бы иметь возможность определить sortColumnName
, но в настоящее время я не могу, если я не кодирую его жестко, но мне нужно, чтобы он был динамическим.