Quelle est la meilleure façon de sort
une liste d'éléments provenant d'un Observable
et de toujours pouvoir utiliser le async pipe
? (J'ai lu que la création d'un canal de tri personnalisé n'est pas vraiment efficace.) Je veux éviter de m'abonner et de conserver une copie locale des données et donc d'utiliser simplement un canal asynchrone ...
//can I use map here and filter items right in the observable and get rid of subscribe?
this.test$ = Observable.of(['one', 'two', 'three'])
.subscribe((data) => {
data.sort((a, b) => {
return a < b ? -1 : 1;
});
this.data = data;
});
modèle:
<div *ngFor='let item of data'>
<!-- want to be able to use async pipe here -->
Si vous appelez .subscribe()
vous obtenez un Subscription
, le canal asynchrone attend un Observable
.
Si vous le changez en
this.test$ = Observable.of(['one', 'two', 'three'])
.map((data) => {
data.sort((a, b) => {
return a < b ? -1 : 1;
});
return data;
});
vous pouvez utiliser le canal asynchrone avec test$