在两个不相关的组件之间通过服务传递数组

时间:2019-08-07 11:10:01

标签: angular

所以我要在组件A中设置一个数组

    this.passingService.setArray(this.array);

并在组件B中进行检索

    this.passingService.getArray();

这是我的过往服务的样子:

passingService.ts

    data: any;
    set(array){
            this.data = array;
    }
    get(){
            return this.data;
    }

每5分钟调用一次componentA中设置数据的方法。并且数据可能会更新也可能不会更新。我需要将更新后的数据从A传递到B。

我也尝试直接通过变量设置数据

    this.passingService.data = this.arrayA; //component A

    this.arrayB = this.passingService.array; //componentB

这是我的过往服务的样子:

passingService.ts

    data: any;

我没有实时获取更新的数据。重新加载应用程序后,我可以看到它。我需要实时更新的数据。 有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您应该改用Observable发出更改,然后订阅组件B,以便您的服务看起来像

import {EventEmitter} from '@angular/core'

dataSource=new EventEmitter<any>();

然后在组件b

this.passingService.dataSource.subscribe((data)=>{this.arrayB=data});

只要您的数据发生更改,便在组件中

this.passingService.dataSource.emit(this.arrayA);