Угловой порядок базы данных по - PullRequest
0 голосов
/ 10 октября 2018

Итак, я создаю блог для своего сайта.База данных работает просто отлично, но порядок моих сообщений не в порядке.Топ самый старый, а я хочу самый новый в топе.Поскольку я использую MEAN / Angular, мне трудно использовать любой JavaScript в моем коде.Кто-нибудь может помочь мне упорядочить базу данных по новой, просто используя интерфейсный код без JavaScript?

<div class="container">
        <div class="row" *ngFor="let b of allBlogs">
          <div class="col-lg-8 col-md-10 mx-auto">
            <div class="post-preview" class="animated zoomIn delay-2s">
              
                <h2 class="post-title" style="margin: 30px; font-size:30px;font-weight: bold; text-align: center; font-family:'Courier New', Courier, monospace">
                        {{b.title}}
                </h2>
                <h5 class="post-subtitle" style="margin: 30px; font-size:12px;font-weight: bold; text-align: left; font-family:'Courier New', Courier, monospace">
                       Category:  {{b.category}}
                </h5>
                <h4 class="post-subtitle" style="margin: 30px; font-size:15px;font-weight: normal; text-align: justify; font-family:'Courier New', Courier, monospace">
                        {{b.content}}
                </h4>

              <p class="post-meta" style="margin: 30px; font-size:12px;font-weight: bold; text-align: left; font-family:'Courier New', Courier, monospace">Posted by Tico
                
                on {{b.created_at}}</p>
            </div>
            <hr>
            </div>
            </div>
            </div>

1 Ответ

0 голосов
/ 11 октября 2018

Ну, вы могли бы написать свой собственный канал orderBy, однако это - это то, что Angular должен сказать по этому поводу:

Angular не предоставляет каналы для фильтрации или сортировки списков.Разработчики, знакомые с AngularJS, знают это как filter и orderBy.В Angular нет эквивалентов.

Это не упущение.Angular не предлагает таких каналов, потому что они работают плохо и предотвращают агрессивное минимизацию. И для фильтра, и для orderBy требуются параметры, которые ссылаются на свойства объекта.Угловые вызовы загрязняют каналы почти в каждом цикле обнаружения изменений.

Фильтрация и особенно сортировка - дорогостоящие операции. Пользовательский интерфейс может значительно ухудшиться даже для списков среднего размера, когда Angular вызывает эти методы каналамного раз в секунду.filter и orderBy часто использовались в приложениях AngularJS, что приводило к жалобам на медленную работу самого Angular.Это косвенное обвинение в том смысле, что AngularJS подготовил эту ловушку производительности, предлагая прежде всего filter и orderBy.

Я бы порекомендовал использовать array.sort вваш сервис, который получает данные от вас дБ.Таким образом, вы можете избежать некоторых из упомянутых выше проблем с производительностью.

this.httpClient.get("my/server/address").subscribe((data) => { 
    data.sort((a, b) => { 
        return a.date < b.date ? 1 : -1; // not sure if the 1's should swap here
    });
});
...