javascript - 使用 RxJS 过滤单个值并返回一个可观察对象,并在 Angular 的模板中通过异步使用可观察对象

标签 javascript angular typescript rxjs observable

我有一个 Angular 服务,它通过 Angular httpClient 正确返回一个 JSON 对象。通过可观察对象,我想通过异步读取输入字段中模板中的 JSON 对象的值。

异步部分已准备就绪,只是我在通过 RXJS 从 Json 检索值时遇到问题。

Java 脚本对象:

{
"verbetering": [
{
"entiteit": "S",
"inkoopWaarde": 125000,
"verbeteringBedrag": 3250,
"verbeteringPercentage": 2.6
},
{
"entiteit": "T",
"inkoopWaarde": 125000,
"verbeteringBedrag": 3250,  //In this field is the value I want to show in the template file!!
"verbeteringPercentage": 2.6
}
]
}

模板代码:

<h4>{{ verBeterEuro$ | async }}</h4>

typescript 代码:

verBeterEuro$ = new Observable<number>();

this.verBeterEuro$ = this.improvementService.improvementSubject.pipe(map(y => y.verbetering.filter(y => y.entiteit == 'T'))).pipe((map(w => w  // i am lost...

此代码有效,但这是对 json 中值的直接调用,无法使用:

this.verBeterEuro$ = this.improvementService.improvementSubject.pipe(map(x => {
      return x.verbetering[1].verbeteringBedrag
}));

我想在 eniteit 为“T”时检索值 verbeteringBedrag。在这种情况下,模板中应显示的值是:3250

最佳答案

我以为你第一次就差不多了:

this.verBeterEuro$ = this.improvementService.improvementSubject.pipe(
  map(
    (y) => {
      const v = y.verbetering.find(vi => vi.entiteit === 'T');
      return v.verbeteringBedrag;
    }
  )
);

关于javascript - 使用 RxJS 过滤单个值并返回一个可观察对象,并在 Angular 的模板中通过异步使用可观察对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57828380/

相关文章:

javascript - 将文本从一个 INPUT 拖动到另一个 INPUT,而不从源 INPUT 中删除文本

javascript - 避免在 React 组件中手动输入 URL

javascript - 如何检测 "stylized"文本?

arrays - RxJS 限制和返回响应结果数组的最佳方式

typescript - 如何使用 Electron 锻造和 Electron 打包器缩小 Electron 应用程序中的 typescript 源代码?

javascript - 不断获取文本输入的值

javascript - 从文档引用数组中获取 firestore 文档

Angular 替换方法不适用于字符串

javascript - React、Typescript 项目中 merge 冲突如何有效

javascript - 从我的项目中的不同文件夹/源调用文件