Angular 对深度嵌套的组件使用@Input

Angular using @Input for deeply nested components

我是 Angular 的新手,并尝试了解解决以下情况的最佳方法(另请参阅 link 的插图):

我有一个包含多个图块的页面(如 mat-cards)。每个图块都有一些功能,例如显示图表、table 和围绕它的一些操作。

illustration of my nested components in angular

我可以嵌套组件并将数据从 parent(从服务获取数据)传递到 n-th grand-child。所以像 parent > @Input child > @Input grand-child > @Input n-th grand child. 但这是正确的方法还是通过@Input 变量“链接”数据超出 child 组件(例如 grand-grand-children)的缺点? 我问的是 我只看到简单的 parent-to-child @Input 交互的例子,但看不到任何例子/建议,你会这样做深层嵌套(大)child ren 也是。 谢谢你的推荐。

是的。不幸的是,如果您对使用@Input() 很执着,那么您将不得不这样做。

或者,您可以考虑为此目的使用可观察对象或 ngrx 存储,具体取决于您传递的数据。

听起来您可能正在将 table 数据从父组件传递给孙组件。在这种情况下,我建议通过 observable 订阅孙子的数据。

这将清除您可能需要的所有那些 @Input(),如果此数据存储在服务中,您甚至可能不需要在父组件中引用它们。

查看此 了解如何做到这一点。