Ionic 3 сортировка Труба JSON по признакам - PullRequest
0 голосов
/ 17 сентября 2018

Может ли кто-нибудь помочь мне создать канал, который сортирует массив на основе свойства c ustom_fields.featured?

<div *ngFor="let ev of list | featured; let p = index">
    <ion-item>
       <p>{{ev.custom_fields.featured}}</p>
    </ion-item>
</div>

Я хочу, чтобы на первом месте было «да», как да, да, да, нет, нет… и т. Д. Спасибо.

{
  id: 49901,
  url: "https://pasabon.com/ajde_events/incredibles-2-2d-2/",
  title: "Incredibles 2 (2D)",
  content: "<p>Bob Parr (Mr. Incredible) is left to care for Jack-Jack while 
  Helen(Elastigirl) is out saving the world. < /p> ",
  excerpt: -[
    "Sat. and Sun. matinee: 12:45"
  ],
  tags: [],
  custom_fields: -{
    evcal_repeat: "yes",
    evcal_srow: 1536120001,
    evcal_erow: 1536206399,
    evcal_lmlink: null,
    evcal_subtitle: -[
      "Sat. and Sun. matinee: 12:45"
    ],
    featured: "no",
    evcal_lat: "12.106403",
    evcal_lon: "-68.938801"
  },
}

1 Ответ

0 голосов
/ 17 сентября 2018

Попробуйте это:

import {Pipe, PipeTransform} from '@angular/core';

@Pipe ({
   name : 'featured'
})
export class FeaturedPipe implements PipeTransform {

  compare(a: any , b: any) {
    if (a.featured < b.featured)
      return 1;
    if (a.featured > b.featured)
      return -1;
    return 0;
  }

  transform(input: Array<any>) : Array<any> {
    return input.sort(this.compare);
  }
}
...