Angular 在两个标记之间传递数据

Angular 在两个标记之间传递数据,angular,Angular,我在Angular 2中新增了一个,我想将数据从一个组件标记传递到另一个组件标记 组件标记1 <div class="row"> <pie-chart></pie-chart> </div> 组件标签2 <div class="row"> <basic-table></basic-table> </div> 这两个组件都放在另一个组件html文件中。只需使用全局服

我在Angular 2中新增了一个,我想将数据从一个组件标记传递到另一个组件标记

组件标记1

<div class="row">

    <pie-chart></pie-chart>

</div>

组件标签2

<div class="row">
       <basic-table></basic-table>
</div>


这两个组件都放在另一个组件html文件中。

只需使用全局服务存储数据,然后使用相同的服务提取另一个组件中的数据

只需使用全局服务存储数据,然后使用相同的服务提取另一个组件中的数据

创建一个服务

import { Injectable } from '@angular/core';

@Injectable()
export class YourService {

  private _data: any;

  public store (data: any) {
    this._data = data;
  }

  public restore (): any {
    return this._data;
  }
}
使用DI(依赖项注入)将其注入组件:

constructor(private\u myService:YourService){}

您可以在组件内部使用此服务:

this._myService.store({..});
let data = this._myService.restore();
创建一个服务

import { Injectable } from '@angular/core';

@Injectable()
export class YourService {

  private _data: any;

  public store (data: any) {
    this._data = data;
  }

  public restore (): any {
    return this._data;
  }
}
使用DI(依赖项注入)将其注入组件:

constructor(private\u myService:YourService){}

您可以在组件内部使用此服务:

this._myService.store({..});
let data = this._myService.restore();

使用事件发射器,在其中一个指令中发生事件时发出事件。 另一个应该订阅该活动

import {EventEmitter} from 'angular2/core';
它具有以下定义类型

class EventEmitter {
    constructor(isAsync?: boolean)
    emit(value?: T)
    subscribe(generatorOrNext?: any, error?: any, complete?: any) : any
}

有关更多详细信息,请参阅文档

使用事件发射器,在其中一个指令中发生事件时发出事件。 另一个应该订阅该活动

import {EventEmitter} from 'angular2/core';
它具有以下定义类型

class EventEmitter {
    constructor(isAsync?: boolean)
    emit(value?: T)
    subscribe(generatorOrNext?: any, error?: any, complete?: any) : any
}

有关更多详细信息,请参阅文档

这些组件是如何相关的(父子、兄弟、无关、由路由器添加的…)这些组件是如何相关的(父子、兄弟、无关、由路由器添加的…)