将角度分量存储在数据库中

时间:2019-01-11 20:30:28

标签: database angular frameworks frontend angular-components

我正在研究将组件存储在数据库中并将其添加到Angular应用程序的可能性。我看到了在运行时使用AOT编译器从数据库添加组件的障碍。我的另一个想法是为数据库中的组件存储HTML(使用ng模块,如* ngIf等)和CSS,并通过在ngInit()函数中获取数据将其分配给组件模板和样式。主要目标是能够从数据库更改HTML / CSS。

有人对此有任何想法,经验或提示吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

按照您的建议,完全有可能将HTML存储在数据库中并在运行时将其加载到组件中。

在Angular方面,它很简单:

<div [innerHtml]="queryResult()">
  whatever is in here will be replaced when queryResult returns
</div>

特别是在无头CMS的情况下,这并不少见。假设您希望用户生成内容,但希望使用角度进行页面布局。然后,用户将通过CMS生成(丰富的)内容,该内容将其(其修改版本)作为blob存储在数据库中,并为后端创建一个后端端点以供访问。依次,Angular将在组件加载时请求该内容(例如,通过content.service)并照顾实际的视图。如图所示,当您使用[innerHtml]属性时,Angular可以对HTML字符串进行适当的清理,因此不应该出于安全考虑。

我不知道您的用例,但我建议不要直接将HTML存储在数据库中。我强烈建议您使用无头CMS为您处理此问题,但这实际上取决于您的堆栈和用例。