Сейчас я работаю над созданием платформы для пользователей, которая позволяет динамически добавлять и редактировать пользовательские страницы (состоит из встроенных компонентов).
Моя идея:
1. пользователь нажимает кнопку добавления страницы.
2. backend создает файл .ts, например:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-added-page1',
template: '<h1>hello!</h1>'
})
export class AddedPage1 implements OnInit {
constructor() { }
ngOnInit() {
}
}
3. пользователь редактирует макет и редактирует файл .ts в Web IDE,
@Component({
selector: 'app-added-page1',
template: '
<h1>my table</h1>
<button (click)="onRefresh()"> refresh </button>
<my-table [data]="_data"></my-table>
'
})
export class AddedPage1 implements OnInit {
_data = [];
constructor() { }
ngOnInit() {
}
onRefresh(){
_data = [1,2,3,4,5];
}
}
4. когда пользователь нажимает сохранить, серверная часть сохраняет все содержимое в базе данных.
Итак, возникает проблема: возможно ли динамически загрузить этот компонент ('AddedPage1') в Angular?
Я обнаружил несколько упомянутых потоков об использовании 'ViewContainerRef' & 'ComponentFactoryResolver' ( ref ). Но этот подход кажется доступным только для существующих компонентов (до компиляции).
Я использую Angular 7.2.11.
Любой опыт или направление будет принята с благодарностью !!