我买了一个Angular 4模板主要是为了看看布局是如何完成的,但包括工作组件,我注意到他们在app组件中有一堆设置,主要用于菜单,改变样式,主要是控制外部框架.
在菜单组件和其他一些组件中,他们使用以下内容与AppComponent设置进行通信:
constructor(@Inject(forwardRef(() => AppComponent)) public app:AppComponent) {}
Run Code Online (Sandbox Code Playgroud)
并将在菜单组件中调用类似:this.app.darkMenu = true的内容
这是有效的设计,好的,坏的,过时的?我甚至不知道你可以像这样与App或父组件通信?这应该是一个Observable Subject或EventEmitter,还是可以通过forwardRef进行通信?这似乎与.NET类似,我可以使用this.master.whateverproperty与MasterPage进行通信.
我喜欢forwardRef如何工作,但不确定我是否应该使用它或更改它以不同的方式进行通信?
forwardRef不是为了交流.forwardRef是能够使用仅在同一文件中进一步声明的类型名称.
如果export class AppComponent {}是在不同的文件中,则不需要forwardRef.
恕我直言,通常最好使用共享服务进行非直接父子组件之间的通信.
| 归档时间: |
|
| 查看次数: |
1088 次 |
| 最近记录: |