首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角5:新数据与旧数据合并

角5:新数据与旧数据合并
EN

Stack Overflow用户
提问于 2018-10-25 08:25:17
回答 2查看 36关注 0票数 0

我非常新的角度,并有一个应用程序,我正在处理的问题。基本上,我们有一个内容组件,它显示通过服务中的API调用获取的一些数据。还有一个标题组件,它有一个搜索表单,它显示了建议的结果列表。单击结果路由到内容组件以显示结果。这仅仅是使用路由来指向内容组件来完成的。

但是,如果您正在查看内容组件中的数据,则搜索某些内容并单击结果,新数据将合并到内容组件中的现有数据中,而不是刷新它。

内容组件调用:

代码语言:javascript
复制
  private getData(): void {
    this.route.params.subscribe(params => {
      this.apiService.getData(params['id']).subscribe(result => {
        this.resultsList = result;
        this.fillDataArray(this.resultsList, params['id']);
      });
    });
  }

不知道我做错了什么,但是任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-25 08:36:22

我怀疑this.fillDataArray总是将项推送到现有的数组中,而从不清除它。this.fillDataArray中的第一步应该是清除数组,例如使用this.dataArray.length = 0

票数 0
EN

Stack Overflow用户

发布于 2018-10-25 08:30:25

如果您的resultList是一个数组,您可以简单地设置

代码语言:javascript
复制
 this.resultList = null;

之前,将新数据赋值为

代码语言:javascript
复制
 this.resultList = result;

尝试将您的代码重写为

代码语言:javascript
复制
 private getData(): void {
    this.route.params.subscribe(params => {
      this.apiService.getData(params['id']).subscribe(result => {
        this.resultList = null;
        setTimeout(()=>{
         this.resultList = result;
         this.fillDataArray(this.resultsList, params['id']);
        },1000);

      });
    });
  }

一开始我就认为这是可行的,但如果这能解决你的问题,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52984662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档