Angular 如何访问其他组件';角度为8的变量

Angular 如何访问其他组件';角度为8的变量,angular,typescript,angular8,Angular,Typescript,Angular8,我正在使用angular,我的HeaderComponent中有一个开/关按钮,我想根据按钮的值在AboutComponent中显示数据 例如: 一些文本 其他一些文本 问题是,我不知道如何从AboutComponent访问my变量 我见过一些人使用服务,而另一些人使用@input decorator,但我不知道如何使用它们,我希望你们中的一些人能启发我 谢谢 创建如下服务: @可注射() 导出类MyService{ 按钮值:字符串; } 将该服务添加到AppModule提供程序列表中 在这两

我正在使用angular,我的HeaderComponent中有一个开/关按钮,我想根据按钮的值在AboutComponent中显示数据

例如:

一些文本
其他一些文本
问题是,我不知道如何从AboutComponent访问my变量

我见过一些人使用服务,而另一些人使用@input decorator,但我不知道如何使用它们,我希望你们中的一些人能启发我

谢谢

  • 创建如下服务:

    @可注射() 导出类MyService{ 按钮值:字符串; }

  • 将该服务添加到AppModule提供程序列表中

  • 在这两个组件中,在构造函数中注入公共myService:myService


  • 现在,您可以将其称为myService.buttonValue。

    最好遵循所使用的组件交互模式。查看该指南——关于使用输入绑定传递数据的第一部分可能就是您想要的。这是最典型的


    直接从子组件访问父组件上的数据是一种不好的做法,因为对特定调用组件的引用进行硬编码会限制子组件的可重用性。

    要在组件之间共享信息,可以使用以下两种方法之一-

    • 创建共享服务
    • 使用绑定
    @Input()绑定允许组件从其父组件接收值,而@Output()允许子组件将数据发送到其父组件

    在您的情况下,您可以按如下方式使用它们-

    • 在标头组件中的按钮状态上创建输出绑定。每当按钮被修改为app component时,这将传递按钮的值
    • 在About组件内部创建一个输入绑定,以便从header组件接收button的值
    选中此项,它演示了使用@Input/@Output绑定在组件之间传递数据


    进一步阅读请参考-

    您的组件之间的关系是什么?好吧,您刚刚用3行代码解决了我的问题,而我无法从文档中得到我想要的!谢谢你的快速回答
    <div *ngIf="butttonValue === 'on'">Some text</div>
    <div *ngIf="butttonValue === 'off'">Some other text</div>