Элементы переупорядочения Angular DOM в QueryList

У меня есть QueryList объектов. Мне нужно переупорядочить элемент DOM в зависимости от взаимодействия с пользователем:

    @ViewChildren('mytemplate') temp: QueryList<MyObjects>;

In ngAfterViewInit :

    let arr = this.temp.toArray();

    // sort the arr here (it gets sorted correctly)

    this.temp.reset(arr) // sorts the temp but DOM elements stays in the same order

QueryList отсортирован, но порядок, на мой взгляд, остается прежним. Мне также нужно изменить порядок просмотра. Есть идеи, как я могу динамически сортировать представление на основе QueryList?

Скажем, у меня есть

<temp #mytemplate *ngFor="let n of nums"> 

это порождает

<temp user1>
<temp user2>
<temp user3>

В моем компоненте я сортирую QueryList, и теперь я хочу, чтобы представление делало то же самое и показывало

<temp user2>
<temp user3>
<temp user1>

1 ответ

Что-то обычно не так, если мы чувствуем необходимость напрямую изменить DOM. В Angular мы строим HTML из нашей модели. Так что в этом случае вам просто нужно изменить порядок своей модели.

nums = [ 1, 2, 3 ];

sort() {
  this.nums = [ 2, 3, 1 ];
}

Очевидно, что это очень абстрактный ответ на ваш очень абстрактный вопрос.

Другие вопросы по тегам