【问题标题】:How to filter single value from an rxjs stream to print in angular 2 component如何从 rxjs 流中过滤单个值以在 Angular 2 组件中打印
【发布时间】: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).
}

【问题讨论】:

    标签: javascript angularjs typescript rxjs rxjs5


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-03-04
      • 1970-01-01
      • 2017-06-18
      • 1970-01-01
      • 1970-01-01
      • 2017-02-17
      • 1970-01-01
      • 2017-10-29
      • 1970-01-01
      相关资源
      最近更新 更多