如何从 rxjs 流中过滤单个值以在 Angular 2 组件中打印

Posted

技术标签:

【中文标题】如何从 rxjs 流中过滤单个值以在 Angular 2 组件中打印【英文标题】:How to filter single value from an rxjs stream to print in angular 2 component 【发布时间】:2017-05-23 06:14:51 【问题描述】:

我在 Angular 2 组件中有这两个 rxjs 流。一个列表包含发言人,另一个列表包含语言。每个说话者都有一个外键,可以在语言列表中找到。

 speakers: FirebaseListObservable<any[]>;
 languages: FirebaseListObservable<any[]>;

现在我想针对*ngFor 中的每个演讲者打印语言名称,或者让我给你一个角度表达我想为每个演讲者 html 标记打印的内容。

&lt;p&gt;speaker.Name , speaker.Language_Id, speaker.getLanguage(), getLanguage(speaker.Language_Id)&lt;/p&gt;.

我正在使用speaker.getLanguage()getLanguage(speaker.Language_Id) 来知道哪个更好并且两者都可能?

我没有在 TypeScript 代码中定义客户端的类型。我需要吗?

我尝试在组件中创建一个函数,但它说 find 在 FirebaseListObservable 类型上不存在。这就是在平面javascript中的简单性:-P。

getLanguage(languageId: number):string
  return this.languages.find(x=>x.Id==languageId).

【问题讨论】:

【参考方案1】:

它应该如何知道 languageId 是 any[] 的属性?

我怀疑您可能需要在这种情况下输入,但我不会将其归因于您当前的问题。

要解决查找功能问题,请查看文档here。

根据文档,该类型下没有列出 find ,您可能需要使用提供的 toArray 方法将其转换为数组。

这个数组应该有你想要的查找功能:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find

【讨论】:

以上是关于如何从 rxjs 流中过滤单个值以在 Angular 2 组件中打印的主要内容,如果未能解决你的问题,请参考以下文章

如何从字符串中提取值以在 Scala 中创建案例类实例

python 格式化单个值以在符合RFC4180的CSV文件中使用。使用逗号将这个函数返回的多个值连接到crea

从 xxx.plist 获取值以在 Target 中构建设置

从 json 会话返回值以在会话外使用

如何从将服务扩展到 MainActivity 的 LocationServices 活动传递纬度 n 经度值以在屏幕上显示它们而不是 Log.d

如何使用 PyQt5 QThread 从 CLASS(ShowVideo) 中获取值以在第二个 CLASS(ImageViewer) 中使用(根据我的程序)