Angular 4 forwardRef?

Angular 4 forwardRef?

我买了一个 Angular 4 模板,主要是为了看看布局是如何完成的,但包括工作组件,我注意到它们在应用程序组件中有一堆设置,主要用于菜单、更改样式,主要控制外部框架。

在菜单组件和其他几个组件中,它们使用以下方式与 AppComponent 设置进行通信:

constructor(@Inject(forwardRef(() => AppComponent)) public app:AppComponent) {}

并且会在菜单组件中调用如下内容:this.app.darkMenu = true

这个有效的设计是好是坏还是过时了?我什至不知道你可以像这样与App或父组件通信?这应该是一个 Observable Subject 或 EventEmitter,还是可以通过 forwardRef 进行通信?这在 .NET 中似乎很相似,我可以使用 this.master.whateverproperty 与 MasterPage 进行通信。

我喜欢 forwardRef 的工作方式,但不确定我是否应该使用它或更改它以进行不同的通信??

forwardRef不用于交流。 forwardRef 是为了能够使用仅在同一文件中进一步声明的类型名称。
如果 export class AppComponent {} 在不同的文件中,则不需要 forwardRef.
恕我直言,通常最好使用共享服务在非直接父子组件之间进行通信。