In meinem Projekt habe ich eine benutzerdefinierte Rohr eine Liste zu filtern:Verwenden von benutzerdefinierten Rohr und async Rohr zusammen
@Pipe({name: 'filterList'})
export class FilterListPipe implements PipeTransform {
transform(value: string[], arg: string[]): any {
if (!value) return value;
return value.filter(el => !arg.includes(el));
}
}
Ich verwende dieses Rohr wie folgt:
<md-select placeholder="Grupos" (change)="changeGroup($event)">
<md-option
*ngFor="let group of (allGroups | async) | filterList : (userDetail | async)?.groups"
[value]="group">
{{ group }}
</md-option>
</md-select>
Das Problem ist, ich einen Fehler in der FilterListPipe angehoben erhalten:
Arg- ist null
So ist dies nicht funktioniert:
let group of (allGroups | async) | filterList : (userDetail | async)?.groups
Kann ich irgendwie das Ergebnis async verwenden, um als Argument meiner benutzerdefinierten Rohr übergeben werden? Oder sollte ich das Observable in meiner Klasse abonnieren und eine andere Klassenvariable erstellen?
mit benutzerdefinierten Rohr vor Asynchron bedeutet, dass Sie die Transformation einer beobachtbaren/Versprechen vor abonniert was erledigt durch async pipe, übergibt async vor custom pipe bedeutet zuerst das observable ist abonniert und du verwendest die pipe – Jassi