Angular сортировка массива отключает последний элемент управления в formGroup - PullRequest
0 голосов
/ 06 августа 2020

Мне нужно отсортировать массив на основе контрольного значения (числового типа) из formGroup внутри другого массива:

const toSort = [
  ['key2', FormGroup: {controls: {order: 2}}],
  ['key1', FormGroup: {controls: {order: 1}}]
  ]

Мне нужно отсортировать их, чтобы форма отображала элементы управления в указанном c порядке. Мне удалось отсортировать его, но каким-то образом, когда я это делаю, когда я отправляю форму, последний элемент управления не обновляется с новым значением (остальные обновляются). Если я отменяю сортировку и элементы управления автоматически сортируются по алфавиту c порядок, все элементы управления обновляют свои значения правильно.

Вот как я отсортировал массив:

toSort.sort((val1, val2) => {
      return val1[1].controls.order.value - val2[1].controls.order.value;
    });

Есть идеи, почему не работает?

Ответы [ 3 ]

0 голосов
/ 06 августа 2020

Исправьте функцию сортировки и попробуйте

и проверьте ngForOf здесь

const toSort = [
  ['key2', {FormGroup: {controls: {order: 2}}}],
  ['key1', {FormGroup: {controls: {order: 1}}}]
  ]

toSort.sort((val1, val2) => {
  return val1[1].FormGroup.controls.order - val2[1].FormGroup.controls.order;
});

console.log(toSort);
0 голосов
/ 06 августа 2020

Я нашел решение. Проблема заключалась в том, что я не присваивал отсортированный массив самому себе после сортировки.

const toSort = [
  ['key2', FormGroup: {controls: {order: 2}}],
  ['key1', FormGroup: {controls: {order: 1}}]
  ]
  
 toSort = toSort.sort((val1, val2) => {
  return val1[1].controls.order.value - val2[1].controls.order.value;
});
0 голосов
/ 06 августа 2020

пожалуйста, измените

val1[1].controls.order.value - val2[1].controls.order.value
=>
val1[1].controls.order - val2[1].controls.order

https://docs.angularjs.org/api/ng/filter/orderBy

и посмотрите порядок По фильтру

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...