Моя проблема заключается в следующем:
Я хотел бы загрузить внешние компоненты Angular
с удаленного сервера на runtime
.Мне удается сделать это хорошо благодаря сообщению в блоге от Манфреда Штайера
Дело в том, что мне нужно передать некоторый объект data
компоненту, который я загружаю в runtime
.В сообщении от Манфреда Штайера он делает это, но не для объектов.
Что я делаю шаг за шагом:
Сначала я создаю отдельный Angular
проект, которыйнапример, берет объект данных, как это:
Внутри RandomComponent.ts
:
Interface Random: {
name: string;
age: number;
}[]
@Input() data: Random;
Внутри RandomComponent.html
:
<div>
<div *ngFor="let d of data">{{d.name}}</div>
</div>
Далее я собираю этот компонент и получаюфайл, который выглядит как: random-component.bundle.js
.Я помещаю этот файл на сервер и отображаю его при необходимости.
Теперь в основном проекте Angular я хочу загрузить этот файл и передать ему объект данных.Если следовать блогу Манфреда Штайера , я бы поступил так:
// creation of element from bundle
const script = document.createElement('script');
script.src = 'assets/random-component.bundle.js';
document.body.appendChild(script);
// creation of new element based on selector from bundle
const data = [{name: 'Dave', age: 19}, {name: 'Charly', age: 23}];
const component = document.createElement('random-component');
component.setAttribute('data', data);
Но я не могу установить такой атрибут, какие-либо идеи?