typescript Angular2在兄弟组件之间进行通信
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript Angular2在兄弟组件之间进行通信相关的知识,希望对你有一定的参考价值。
import {Component, Input, OnChanges} from 'angular2/core';
import {EmitterService} from './emitter.service';
@Component({ selector: 'dispatcher', template: '' })
class DispatcherComponent implements OnChanges {
@Input() id: string;
private value = "dispatcher component value";
doStuff() {
EmitterService.get(this.id).emit(value);
}
}
@Component({ selector: 'listener', template: '' })
class ListenerComponent implements OnChanges {
@Input() id: string;
ngOnChanges() {
EmitterService.get(this.id).subscribe(value => console.log(value));
}
}
@Component({
providers: [EmitterService],
selector: 'host',
template: `
<dispatcher [id]="host_id"></dispatcher>
<listener [id]="host_id"></listener>
`
})
export class HostComponent {
public host_id: "HOST_COMPONENT";
constructor(private _emitterService: EmitterService) {}
}
import {Injectable, EventEmitter} from 'angular2/core';
@Injectable()
export class EmitterService {
private static _emitters: { [ID: string]: EventEmitter<any> } = {};
static get(ID: string): EventEmitter<any> {
if (!this._emitters[ID])
this._emitters[ID] = new EventEmitter();
return this._emitters[ID];
}
}
以上是关于typescript Angular2在兄弟组件之间进行通信的主要内容,如果未能解决你的问题,请参考以下文章
Angular2:通过路由器在兄弟组件之间传递数据?
渲染所有组件后,如何在 Angular2 中运行 TypeScript 代码?
Angular2,TypeScript,如何读取/绑定属性值到组件类(在 ngOnInit 中未定义)[重复]
Angular 2 兄弟组件通信
降级使用 Typescript 编写的 angular2 组件。如何将其导入用 es5 编写的 angular 1 项目?
typescript 一个示例,显示动态地将模板注入Angular2组件的方式