Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在数据库中存储角度组件_Database_Angular_Frameworks_Frontend_Angular Components - Fatal编程技术网

Database 在数据库中存储角度组件

Database 在数据库中存储角度组件,database,angular,frameworks,frontend,angular-components,Database,Angular,Frameworks,Frontend,Angular Components,我正在研究将组件存储在数据库中并将其添加到Angular应用程序的可能性。我看到了使用AOT编译器在运行时从数据库添加组件的障碍。我的另一个想法是将组件的HTML(使用诸如*ngIf等ng模块)和CSS存储在数据库中,并通过在ngInit()函数中获取数据将其分配给组件模板和样式。主要目标是能够从数据库中更改HTML/CSS 有人对此有什么想法、经验或建议吗 谢谢大家! 如您所建议的,将HTML存储在数据库中并在运行时将其加载到组件中是完全可能的 在角度方面,它很简单: <div [inn

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

有人对此有什么想法、经验或建议吗


谢谢大家!

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

在角度方面,它很简单:

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

当queryResult返回时,这里的内容将被替换
特别是在无头CMS的情况下,这并不少见。假设您希望用户生成内容,但希望用户进行页面布局。然后,用户将通过CMS生成(丰富的)内容,CMS将(它的修改版本)作为blob存储在数据库中,并为前端创建一个后端端点来访问它。Angular将依次请求加载组件上的内容(例如通过content.service),并负责实际视图。如图所示,Angular在使用[innerHtml]属性时处理HTML字符串的正确清理,因此它不应该是一个安全问题


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

谢谢。所以这是可能的,但它是否能很好地使用框架?我对此不确定,因为它感觉很粗糙?你在想什么?我编辑了答案以反映你的问题。我希望它能帮助/给你一个更进一步的起点。我刚刚在这里对一个类似的问题发表了评论:。如果您将组件存储在数据库中并通过[innerHTML]将它们连接起来,您将遇到与作者相同的问题。您在Angular*.html文件中看到的并不是真正的普通html文件。在编译过程中,它们会转换为其他形式。解决方案是使用Angular元素并将生成的.js存储在数据库中,如果您真的需要将其放入某些数据库中,那么您关于Angular html在构建过程中被转换的观点是完全正确的。有趣的想法是在组件完成构建过程后存储组件。但无论如何,我真的不想将整个组件存储在这样的数据库中。如果它是内容,那么innerHtml就是一种方式。我正在与一位客户合作一个使用Django REST API和Wagtail CMS的项目,该项目正是采用这种方法来存储内容并将其提供给@d.Veen。我认为这里的讨论围绕内容(数据)展开的。虽然我看到作者也问了CSS。我假设用例必须与在不重新部署的情况下更改网页的外观和感觉有关。我认为在CMS(或数据库)中存储样式信息不会被推荐,也不会被视为使用Angular(或任何前端框架)的糟糕做法,对吗?