Я нашел пример здесь https://jdanyow.github.io/aurelia-converters-sample/ (поиск SortValueConverter) - Просто нужно каким-то образом расширить функции toView:Сортируемые группы рядов (+ группа дочерних строк) с Aurelia
export class SortValueConverter {
toView(array, propertyName, direction) {
var factor = direction === 'ascending' ? 1 : -1;
return array
.slice(0)
.sort((a, b) => {
return (a[propertyName] - b[propertyName]) * factor
});
}
}
так, что это не только своего рода каждый ряд, но так, чтобы он:
- сортов каждая строка группы объектов - внутри массива строк таблицы - , который имеет логическое isGroup: истинный набор
- Вместе с сортировкой сама строка, она должна, однако, также сортировать детей группы строк принадлежащие по каждой группе
- И, конечно, эти строки также должны были бы быть перемещены вместе с их группирования строк, поэтому они остаются ниже группы строк.
В моем js-коде я сплющил массив, поэтому я могу показать его в таблице. isGroup: true/false указывает, когда начинается новая группа.
- роботы (isGroup: истинно)
- R2-D2
- терминатор
- ВАЛЛ
- Робокоп
- С-3PO
- животных (isGroup: истинные)
- собака
- акула
- кошка
- обезьяны
Как можно переписать преобразователь значений сортировки (в идеале), чтобы отсортировать обе группы строк и строк группы детей напр. в алфавитном порядке/убывание. Я предполагаю, что это не нужно делать с помощью конвертера значений, но теоретически можно просто сделать непосредственно на массиве в js-коде, но я считаю, что лучшим решением будет расширение преобразователя значений сортировки для поддержки этой группировки строк ,
Чтобы сохранить этот пример как «простой», как это возможно, давайте уменьшим объекты строки к абсолютному минимуму:
{
name: 'group or robot name'
isGroup: true/false
}
так, например.
[
{
name: 'robots',
isGroup: true
},
{
name: 'R2-D2',
isGroup: false
},
{
name: 'terminator',
isGroup: false
},
{
name: 'wall-e',
isGroup: false
},
{
name: 'robocop',
isGroup: false
},
{
name: 'C-3PO',
isGroup: false
},
{
name: 'animals',
isGroup: true
},
{
name: 'dog',
isGroup: false
},
{
name: 'shark',
isGroup: false
},
{
name: 'cat',
isGroup: false
},
{
name: 'monkey',
isGroup: false
}
]
Любые идеи?
Привет, Эшли, большое спасибо за ваше решение - мы почти там. Я заметил, что он не сортирует элементы внутри групп, поэтому я думал, что могу просто использовать SortValueConverter I, связанный с исходным сообщением, следующим образом: '
К сожалению, я забыл это сделать. Я добавлю, что в. –
Спасибо! Также я только что заметил. Мне нужно отобразить это как строки в таблице, на том же уровне (сглаженные), как jeff делает, – Dac0d3r