ng2 - динамическое создание компонента на основе шаблона

Я смотрел на API Angular 2 дляComponentResolver а такжеDynamicComponentResolver для создания динамических компонентов, но я имею в виду нечто иное, чем те API предлагают.

Есть ли способ в NG2 создать компонент, основанный на строке его имени класса?

Например, я создаю настраиваемую панель инструментов диаграмм. Разметка каждого пользователя хранится в базе данных, указывая, что им нужны 2x линейные графики здесь, 3x там гистограммы и т. Д.

Когда я загружаю эти данные как json, это выглядит примерно так:

user.charts = [
     { type: 'LineChartComponent', position: ... }
     { type: 'BarChartComponent', position: ... }
];

кудаtype это имя класса компонента, которое я хочу рефлексивно создать.

Пока у меня есть следующее:

 this.chartMap = {
    'LineChartComponent': LineChartComponent
 };

let config = this.configuration;
let chartComponentType = this.chartMap[config.type];
let factory = this.componentFactory.resolveComponentFactory(chartComponentType);
let component = factory.create(this.injector);
component.instance.configuration = config;
this.chartContainer.insert(component.hostView);

Но вся идея состоит в том, чтобы устранить необходимостьchartMap, Как я могу рефлексивно создать этот класс на основе строки, не имея ссылки на тип?

Ответы на вопрос(2)

Ваш ответ на вопрос