1

我有一个带有一个相当大的菜单的组件,对于每个菜单项我有一个不同的表单要显示,至少会有 100 个不同的表单,预计会有几百个。现在的问题是可以导入所有这些表单组件吗?有不同的方法吗?

与此相关的另一件事是,我有一个包含所有子组件有用信息的变量,使用依赖注入提供它是个好主意,还是应该通过 @Input 将其插入所有子组件中?

4

1 回答 1

2

如果您使用路由器加载表单组件,您可以使用AsyncRoute进行延迟加载。

@Input如果您想将值传递给直接子组件或指令,则绑定很方便。
如果您需要传递给不是直接子级的组件,则服务仍然可以工作,而绑定则不能。

我会说,在你的情况下使用更方便的东西。

使用路由器或 DynamicComponentLoader 添加的组件,服务通常更方便。

您可以只创建一个查找表(一个对象,您可以在其中注册所有类型的名称

{ MyComponent1: MyComponent1, MyComponent1: MyComponent2, ...}

然后只需使用字符串名称查找类型。Angular 正在进行预渲染,我想以这种方式一次加载所有组件会更有效。

于 2016-02-16T08:49:30.293 回答