angular - 是否可以使用 Angular 6 和 REST API 从数据库加载组件?
问题描述
是否可以使用 Angular 6 和 REST API 从数据库加载组件?
我正在尝试使用以下技术编写 CMS:C#、ASP.net Core、WebAPI、Angular 6、...
解决方案
简单回答是不。
使用常规方法,Angular 无法加载在编译时未知的组件。通常,这意味着组件列在模块的“声明”部分中。
您可以动态创建组件,但它们仍然需要在编译时知道,并列在模块的“entryComponents”部分中。
如果我了解您想要的场景,延迟加载模块将无济于事 - 这只是为了改善初始加载时间,因此在首次加载时,用户不必等待应用程序中的所有模块加载。您仍然无法创建在编译时未知的组件。
也就是说,可以即时编译组件,但只能在“解释”模式下,通常称为“开发模式”。使用 AOT(提前编译)时,您不能这样做。恕我直言,没有人会在生产中使用非 AOT 构建。
我所做的与您想要的类似的是根据我从 REST 调用中获得的配置动态创建(在编译时已知)组件。我有一堆经过 AOT 编译的组件,以及一个将字符串与组件相关联的映射。这些组件可以使用配置对象进行定制。给定来自 REST 调用的配置,我按名称查找组件,动态创建它,并为其提供配置对象。
当然,这只适用于在编译时知道您的可能对象的世界,并且您只是在运行时选择和配置它们。它不允许您创作组件并将源代码或编译后的对象粘贴到您的 CMS 中。
推荐阅读
- python - Anaconda 导航器不刷新已使用终端更新的软件包
- python - 传递维基百科 API 的“继续”内容给我一个 badcontinue 错误
- django - 一次创建多个实例 Django Rest 框架
- javascript - React-Native 中的匿名函数
- docker - Docker 在以我的主机用户为所有者的容器内创建文件
- c - 是否有一个 gcc 函数可以为 C 添加两个大数?
- python - python kubernetes 如何使用 postStart 和 preStop 处理程序创建作业
- python - Keras:如果我的火车数据在子文件夹中,我的验证数据也需要吗?
- javascript - VueJS 在不使用 jQuery 的情况下从 Javascript 激活 boostrap 模态
- rust - 当通过“include_str!”包含游戏时,着色器会导致游戏崩溃。(贝维)