Я довольно плохо знаком с Angular, так что это может быть простое исправление.
В настоящее время у меня 3 разные карты, которые вызываются через API. Затем я использую * ngFor, чтобы зациклить эти элементы и создать карту для каждого, как показано ниже:
<div *ngFor="let exploreCard of exploreCards" class="col-sm">
<div class="card three-col">
<img class="card-img-top" [src]="exploreCard.ImageUrl" alt="Card image cap" />
<div class="card-body">
<h5 class="card-title">{{exploreCard.Title}}</h5>
<p class="card-text">{{exploreCard.Description}}</p>
<p>{{exploreCard.Sequence}}</p>
</div>
</div>
</div>
Вы увидите, что у меня есть порядковый номер, который распечатан. Сейчас мой json сидит так, что когда API получает его, он возвращается в порядке 3 , 2 , 1
.
Я бы хотел вернуть его в порядке 1 , 2 , 3
. Однако я знаю, что могу использовать трубу, но мне нужно, чтобы она работала как можно быстрее. Я также не хочу просто изменять порядок возвращенных товаров, потому что это не подходит для будущих дополнений.
Это код в моем компоненте, который запускается при инициализации:
this.exploreService.getExploreCards()
.subscribe(z => {
this.exploreCards = z;
if (this.exploreCards != null && this.exploreCards.length > 0) {
this.showLoader = false;
}
})
и exploreCards
выглядит так:
private exploreCards: ExploreCard[];
Кто-нибудь знает, как добиться правильного упорядочения с помощью логики в компоненте?
Заранее спасибо.
EDIT:
Вот мой getExploreCards()
метод:
public getExploreCards(): BehaviorSubject<ExploreCard[]> {
if (this.exploreCards === null) {
this.exploreCards = new BehaviorSubject<ExploreCard[]>(null);
this.http.get(`${this.baseUrl}api/Explore/GetExploreCards`).pipe(
retry(3)
)
.subscribe((x: ExploreCard[]) => this.exploreCards.next(x));
}
return this.exploreCards;
}