从Angular 4中的另一个组件访问组件方法

时间:2018-09-26 02:06:12

标签: angular

我有一个仪表板组件,一个头部组件和一个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()绝对行不通。

感谢任何提示或解决方案。

1 个答案:

答案 0 :(得分:4)

cannot 只是这样调用,如果组件是独立的。如果component1和component2是同级,则可以使用EventEmitter @Input

您还可以将共享服务与主题一起使用。 Angular中的服务是单例,这意味着将其作为单个实例进行管理。因此,如果每个组件都访问服务,它们将访问相同的共享数据。