是否可以使用 Angular 6 和 REST API 从数据库加载组件?
Is it possible to load Components from database Using Angular 6 and REST APIs?
是否可以使用 Angular 6 和 REST API 从数据库加载组件?
我正在尝试使用这些技术编写 CMS:C#、ASP.net Core、WebAPI、Angular 6、...
简单的答案是否定的。
使用正常方法,Angular 无法加载编译时未知的组件。
通常,这意味着该组件列在模块的 'declarations' 部分中。
您可以动态创建组件,但它们仍然需要在编译时已知,并列在模块的 'entryComponents' 部分。
如果我理解您想要的场景,延迟加载模块将无济于事 - 这只是为了缩短初始加载时间,这样在第一次加载时,用户不必等待应用中的所有模块都加载完毕加载。您仍然无法创建在编译时未知的组件。
也就是说,可以动态编译组件,但只能在 'interpreted' 模式下,通常称为 'development mode'。当使用 AOT(提前编译)时,你不能这样做。恕我直言,没有一个头脑正常的人会在生产中使用非 AOT 构建。
我所做的与您想要的类似,是根据我从 REST 调用中获得的配置动态创建(在编译时已知)组件。我有一堆 AOT 编译的组件,以及一个将字符串与组件相关联的映射。这些组件可以使用配置对象进行定制。给定来自 REST 调用的配置,我按名称查找组件,动态创建它,并为其提供配置对象。
当然,这只有在您的可能对象的范围在编译时已知并且您只是在运行时选择和配置它们时才有效。它不允许您编写组件并将源代码或编译后的对象粘贴到您的 CMS 中。
是否可以使用 Angular 6 和 REST API 从数据库加载组件?
我正在尝试使用这些技术编写 CMS:C#、ASP.net Core、WebAPI、Angular 6、...
简单的答案是否定的。
使用正常方法,Angular 无法加载编译时未知的组件。 通常,这意味着该组件列在模块的 'declarations' 部分中。
您可以动态创建组件,但它们仍然需要在编译时已知,并列在模块的 'entryComponents' 部分。
如果我理解您想要的场景,延迟加载模块将无济于事 - 这只是为了缩短初始加载时间,这样在第一次加载时,用户不必等待应用中的所有模块都加载完毕加载。您仍然无法创建在编译时未知的组件。
也就是说,可以动态编译组件,但只能在 'interpreted' 模式下,通常称为 'development mode'。当使用 AOT(提前编译)时,你不能这样做。恕我直言,没有一个头脑正常的人会在生产中使用非 AOT 构建。
我所做的与您想要的类似,是根据我从 REST 调用中获得的配置动态创建(在编译时已知)组件。我有一堆 AOT 编译的组件,以及一个将字符串与组件相关联的映射。这些组件可以使用配置对象进行定制。给定来自 REST 调用的配置,我按名称查找组件,动态创建它,并为其提供配置对象。
当然,这只有在您的可能对象的范围在编译时已知并且您只是在运行时选择和配置它们时才有效。它不允许您编写组件并将源代码或编译后的对象粘贴到您的 CMS 中。