【问题标题】:Angular 4 forwardRef?Angular 4 forwardRef?
【发布时间】:2017-07-13 14:18:22
【问题描述】:

我买了一个 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 的工作方式,但不确定是否应该使用它或更改它以进行不同的通信??

【问题讨论】:

标签: angular primeng


【解决方案1】:

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

【讨论】:

  • 这就是我的想法,当我花钱购买模板并看到代码使用 forwardRef 作为组件之间的通信时,我感到很惊讶,所以我想我可能错过了一些东西。我正在使用 Rxjs 主题重写大多数代码进行通信,但只需要其他人为我验证。谢谢!
猜你喜欢
  • 2016-04-12
  • 1970-01-01
  • 1970-01-01
  • 2019-11-07
  • 2020-05-28
  • 1970-01-01
  • 2020-01-18
  • 2017-11-25
  • 2018-02-13
相关资源
最近更新 更多