Я использую NgRx в своем приложении angular2. Тем не менее, я испытываю трудности с использованием метода find на моем Observable.метод поиска не работает на RxJs Наблюдаемый
Переводы для моего приложения поступают из внешнего приложения через отдых и хранятся в хранилище 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;
}
Кто-нибудь знает, что я делаю неправильно?
Благодаря
Я понимаю, однако я получаю свойство ошибки находка не существует на типе «Наблюдаемые ». Есть идеи? –
Ronny176
Да, это в основном то, что я объяснил в своем ответе: '.find' вернет return Observable, если вы хотите сопоставить это с простым объектом (или строкой), вам придется либо пройти через« async »pipe (который является самым безопасным способом btw.) или реализовать какое-то считывание syncronouse (что крайне уродливо), что было бы возможно только в том случае, если вы можете быть на 100% уверены, что 'uiMessages $' не содержит асинхронных потоков – olsn
Как примечание, есть готовые к использованию решения для обработки переводов в угловом2, на всякий случай это то, что вы хотите выполнить: https://github.com/ocombe/ng2-translate – olsn