0
私はangular2アプリケーションでNgRxを使用しています。しかし、私はObservableでfindメソッドを使うのが難しいです。findメソッドがRxJsで動作しないObservable
私のアプリケーションの翻訳は、安心して外部アプリケーションから来ており、NGRXストアにキー値オブジェクトとして格納されています。このオブジェクトには、コードと翻訳変数のキー変数があります。
正しい変換オブジェクトを見つけるためにfindメソッドを実装しようとすると、機能しません。
@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;
}
誰かが間違っていることを知っていますか?
おかげ
私が理解し、しかし、私は「errorプロパティの検索がタイプに存在しません取得観察可能 '何か案は? –
Ronny176
はい、それは基本的に私が私の答えで説明したものです。 '.find'はObservableを返します。もしそれを普通のオブジェクト(または文字列)にマップしたい場合は、' async'パイプ'uiMessages $ 'に非同期フローが含まれていないことが100%保証されている場合にのみ可能となる、ある種のsyncronouseの読み出し(これは非常に醜い)を実装します。 – olsn
ちょうど副メモとして、あなたが達成したいと思うような場合に備えて、angular2の翻訳処理のためのすぐに使えるソリューションがあります:https://github.com/ocombe/ng2-translate – olsn