角度2:将一个可观察的“内部”合并到另一个

约达勒

在页面加载时,我将此数据作为项目加载到模板中:

{
    "id": "1",
    "name": "Leonardo",
    "weapon": "sword",
},
{
    "height": "2",
    "name": "Donatello",
    "weapon": "stick",
},

我使用此在我的组件中加载数据:

this.dataSubscription = this.dataService.getAllTurtles().subscribe(res => this.turtles = res);

每个项目还具有一个按钮“ LOAD MORE DATA”。当我单击它时,它将加载属于该特定项目的一些额外数据:

this.dataSubscription = this.dataService.getData(id).subscribe(res => this.singleData = res);

加载我这个

{
    "favoritePizza": "Hawai",
}

现在,我想将此数据合并到原始数据流中,所以我需要:

{
    "id": "1",
    "name": "Leonardo",
    "weapon": "sword",
    "favoritePizza": "Hawai"
},
{
    "id": "2",
    "name": "Donatello",
    "weapon": "stick",
}

但是我不确定如何以这种方式连接数组。目前,当我使用concat时:

this.dataSubscription = this.dataService.getData(id).subscribe(res => this.turtles = this.turtles.concat(res));

我只是得到数组:

{
    "id": "1",
    "name": "Leonardo",
    "weapon": "sword",
},
{
    "id": "2",
    "name": "Donatello",
    "weapon": "stick",
}
{
    "favoritePizza": "Hawai"
}

如何使用ID来访问数组中的特定项目,并向其添加稍后加载的数据?

克里门特·茹
this.dataService.getAdditionalData(id)
  .subscribe(data => {
    this.turtles = this.turtles.map(i => {
      if (i.id !== id) {
        return i;
      }
      return { ...i, ...data };
    })
  })

范例https://stackblitz.com/edit/angular-tl4mt1?file=app%2Fapp.component.ts

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

* ng如果异步管道与另一个可观察到的角度合并

角度6:将可观察的响应传递给另一个可观察的

如何在另一个可观察对象内部解析一个可观察对象?-rxjs

将RxSwift可观察结果绑定到另一个可观察结果

预订两个可观察对象,即在另一个可观察的HTTP内部观察

将 2 个文本框合并到另一个文本框

如何将一个可观察对象映射到另一个

将一个可观察的嵌套对象映射到另一个对象

如何将一个可观察的KnockoutJs分配给另一个可观察的对象?

使用一个可观察对象同步另一个可观察对象

将源从一个SVN存储库合并到另一个?

通过VSTS API将一个分支合并到另一个分支

将一个对象合并到另一个对象

将一个foreach的元素合并到另一个

如何将一个系列的值合并到另一个系列

如何将一个 git 分支强行合并到另一个

将一个元组序列合并到Scala中的另一个序列

将信息从一个列表合并到另一个 Scala

vscode-将一个分支合并到另一个分支

如何将一个分支更改合并到另一个分支?

将一个标签的“属性键”合并到另一个标签中

将一个SQL查询的结果合并到另一个

如何将一个文件合并到另一个\ Linux

将一个文件夹与源合并到另一个

将一个数组合并到另一个数组

订阅另一个可观察的订阅者?

另一个rxjs可观察的重试策略

在另一个完成后使另一个可观察

使用角度rxjs中的另一个可观察对象转换数据