Сохранение HTML в базе данных и загрузка его в компонент во время выполнения, как вы предлагаете, вполне возможна.
На угловой стороне это так же просто, как:
<div [innerHtml]="queryResult()">
whatever is in here will be replaced when queryResult returns
</div>
В контексте безголовых систем управления контентом это вовсе не редкость. Скажем, вы хотите, чтобы пользователь генерировал контент, но хотите, чтобы угловая разметка страницы. Затем пользователь сгенерирует (обогащенный) контент через CMS, которая хранит (измененную версию) в виде большого двоичного объекта в вашей базе данных и создает внутреннюю конечную точку для вашего внешнего интерфейса для доступа к ней. Angular, в свою очередь, запросит этот контент при загрузке компонента (например, через службу content.service) и позаботится о реальном представлении. Angular обрабатывает правильную очистку строки HTML, когда вы используете свойство [innerHtml], как показано, поэтому это не должно быть проблемой безопасности.
Я не знаю ваш вариант использования, но я бы не советовал напрямую хранить HTML в базе данных. Я настоятельно рекомендую использовать CMS без головы, чтобы справиться с этим, но это действительно зависит от вашего стека и варианта использования.