Mao*_*ion 2 eventemitter angular angular-event-emitter
使用 Angular6,假设我有 2 个子组件 A、B,它们都是父组件 P 的一部分。我想在组件 A 上使用表单输入-因此一旦单击,字符串值将传递并触发组件 B 上的函数. 可能是这样的:
functionOnB(valueFromA: string) { //some code here; }
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?
我已经使用 angular 的 EventEmitter 在组件之间成功传输了数据,但是是否可以使用这些数据调用函数,而不仅仅是传递原始信息?
公共服务可用于从另一个组件触发事件/功能。例如:ComponentA 的点击事件会调用一个服务方法。然后,该服务方法应该发出另一个事件。然后 ComponentB 应该订阅服务的事件发射器。示例代码:ChildA (HTML):
<button (click)="onClick()"></button>
Run Code Online (Sandbox Code Playgroud)
ChildA 控制器 (TS):
onClick() {
this.commonService.AClicked('Component A is clicked!!');
}
Run Code Online (Sandbox Code Playgroud)
公共服务(TS):
import { Injectable, EventEmitter, Output } from '@angular/core';
@Output() aClickedEvent = new EventEmitter<string>();
AClicked(msg: string) {
this.aClickedEvent.emit(msg);
}
Run Code Online (Sandbox Code Playgroud)
ChildB 控制器 (TS):
ngOnInit() {
this.commonService.aClickedEvent
.subscribe((data:string) => {
console.log('Event message from Component A: ' + data);
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11850 次 |
| 最近记录: |