Ich benutze NgRx in meiner angular2-Anwendung. Allerdings habe ich Schwierigkeiten, die Suchmethode auf meinem Observable zu verwenden.Finden Methode funktioniert nicht auf RxJs Observable
Die Übersetzungen für meine Anwendung stammen von einer externen Anwendung über Rest und werden im NGRX-Speicher als Schlüsselwertobjekt gespeichert. Dieses Objekt hat eine Schlüsselvariable mit dem Code und eine Übersetzungsvariable.
Wenn ich versuche, die Find-Methode zu implementieren, um das richtige Übersetzungsobjekt zu finden, funktioniert es nicht.
@Pipe({
name: 'translate',
})
export class TranslatePipe implements PipeTransform, OnInit {
uiMessages$ = this.sb.uiMessages$;
constructor (private sb: AppSandbox) {}
transform(value: string, args: any[]): any {
return this.uiMessages$.find((uiMessage: UiMessage) => (uiMessage.key === value)).translation;
}
Weiß jemand, was ich falsch mache?
Dank
Ich verstehe, aber bekomme ich die Fehler Eigenschaft Fund nicht auf Typ existiert ‚beobachtbar ". Irgendwelche Ideen? –
Ronny176
Ja, das ist im Grunde, was ich in meiner Antwort erklärte: '.find' wird zurückgeben ein Observable, wenn Sie das zu einem einfachen Objekt (oder String) zuordnen möchten, müssen Sie entweder' async' pipe gehen (die ist der sicherste Weg btw.) oder eine Art Syncronouse Readout (was extrem hässlich ist) zu implementieren, was nur möglich wäre, wenn man 100% sicher sein kann, dass 'uiMessages $ 'keine asynchronen Flüsse enthält. – olsn
Nur als Randnotiz, es gibt fertige Lösungen für die Übersetzung-Behandlung in angular2, nur für den Fall, dass das ist, was Sie erreichen möchten: https://github.com/ocombe/ng2-translate – olsn