我只是想做一些实验。因此,当我单击A组件的按钮时,B组件的某些函数应该会被调用。但是,如果这些组件不是彼此的父子组件,我不知道如何做到这一点。你能帮帮我吗?
发布于 2018-10-15 19:47:25
当组件之间没有子级-父级关系时
您应该创建一个具有Subject的服务,并在这两个组件中注入此服务。
some.service.ts
@Injectable()
export class SomeService {
public testSubject = new Subject<string>();
}comp-a.component.ts
export class CompAComponent {
constructor(private someService: SomeService) {
}
btnClickHandler() {
this.someService.testSubject.next('clicked');
}
}comp-b.component.ts
export class CompBComponent {
constructor(private someService: SomeService) {
this.someService.testSubject.subscribe(next => { this.someFunction(data);});
}
someFunction(msg) {
console.log(msg);
}
}https://stackoverflow.com/questions/52815977
复制相似问题