我有一个仪表板组件,一个头部组件和一个userOverview组件。
仪表板组件.ts文件
export class DashboardComponent implements OnInit {
startTour() {
// do something
}
}
userOverview组件.ts文件
export class UserOverviewComponent implements OnInit {
startTour() {
// do something else
}
}
标题组件.html文件
<button (click)="openTour()"></button>
标题组件.ts文件
export class HeaderComponent implements OnInit {
openTour() {
// In here, I want to ask is there any way I could make a
// call to different component with the same method same.
this.name = componentName // The component Name, such as
// DashboardComponent, UserOverviewComponent
this.name.startTour(); // Something like this
}
}
现在,当导航到其他组件时,我能够获得this.name,但是我知道通过使用this.name.startTour()绝对行不通。
感谢任何提示或解决方案。
答案 0 :(得分:4)
您 cannot
只是这样调用,如果组件是独立的。如果component1和component2是同级,则可以使用EventEmitter
@Input
您还可以将共享服务与主题一起使用。 Angular中的服务是单例,这意味着将其作为单个实例进行管理。因此,如果每个组件都访问服务,它们将访问相同的共享数据。