Angular 4 forwardRef?

时间:2017-07-13 14:18:22

标签: angular primeng

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

在菜单组件和其他一些组件中,他们使用以下内容与AppComponent设置进行通信:

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

并在菜单组件中调用类似:this.app.darkMenu = true的内容

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

我喜欢forwardRef的工作原理,但不确定我是应该使用它还是改变它来进行不同的沟通?

1 个答案:

答案 0 :(得分:5)

forwardRef不适合沟通。 forwardRef将能够使用仅在同一文件中进一步声明的类型名称 如果export class AppComponent {}位于其他文件中,则无需forwardRef 恕我直言,通常最好使用共享服务进行非直接父子组件之间的通信。