Angular 向下和向上事件
我正在尝试angular 2,我觉得它很棒! 但我不知道如何发送/订阅事件 例如: 我有两个小组件:组件A和组件B。 ComponentA包含一个水果列表。组件B包含水果的详细信息。当用户从列表中选择一个水果(componentA)时,我希望ComponentB执行一个函数(例如console.log(event)) 为了实现这种行为,我想使用事件。 ComponentA不是componentB的父母,他们是兄弟。但我希望事件向下传播,也向上传播。 任何知道活动名称的人都必须能够订阅此活动 可能吗? 我想使用angular2类,而不是外部库 我当前的代码:Angular 向下和向上事件,angular,Angular,我正在尝试angular 2,我觉得它很棒! 但我不知道如何发送/订阅事件 例如: 我有两个小组件:组件A和组件B。 ComponentA包含一个水果列表。组件B包含水果的详细信息。当用户从列表中选择一个水果(componentA)时,我希望ComponentB执行一个函数(例如console.log(event)) 为了实现这种行为,我想使用事件。 ComponentA不是componentB的父母,他们是兄弟。但我希望事件向下传播,也向上传播。 任何知道活动名称的人都必须能够订阅此活动 可能
导出类组件a
{
@Output()发射器:EventEmitter=neweventemitter();
private onfutureselected():void
{
this.emitter.emit(“你好!”);
}
}
导出类组件A
{
构造函数():void
{
//订阅事件的doJob()
}
private doJob():void{console.log('event catched');}
}
谢谢
编辑
我以这种方式更新了代码:
事件处理程序服务:
导出类EventEmitterService
{
@Output()eventOne:EventEmitter=neweventemitter();
@Output()eventTwo:EventEmitter=neweventemitter();
}
组件A(事件发送方):
导出类组件a
{
公共构造函数(私有eventHandler:EventEmitterService){}
private onfutureselected():void
{
this.emitter.emit(“你好!”);
this.eventHandler.eventOne.emit(“Hello事件一”);
this.eventHandler.eventTwo.emit(12);
}
}
组件B(事件接收器):
导出类组件a
{
构造函数():void
{
eventHandler.eventOne.subscribe((evt:string)=>{
console.log(“事件一”+evt);
});
eventHandler.eventTwo.subscribe((evt:number)=>{
console.log(“事件二”+evt);
});
}
}
这是一个好的解决方案吗?Angular2没有为此提供功能。 您可以使用自定义事件总线服务。 另见