У меня есть «приборная панель», которая загружает настроенные элементы. шаблон Приборная панель имеет следующее:Динамическое добавление компонентов в ngFor
<div class="dash-container" [ngGrid]="gridConfig">
<div *ngFor="let box of boxes; let i = index"
[(ngGridItem)]="box.config"
(onItemChange)="updateItem(i, $event)"
(onResize)="onResize(i, $event)"
(onDrag)="onDrag(i, $event)"
(onDragStop)="onDragStop(i,$event)"
[ngClass]="box.class"
>
<div class="handle"><h4>{{box.title}}</h4></div>
<div [innerHTML]= "box.content"></div>
</div>
</div>
Теперь <div [innerHTML]= "box.content"></div>
не будет работать, потому что нестандартные элементы получают продезинфицировать. Запуск последнего углового 2.4.6 (RC 6).
Я смотрю примеры, которые я могу найти для динамических компонентов, но все, что я вижу, это то, что они просто добавляют компоненты к текущему компоненту, но мне нужны они в очень специфических div, как в приведенном выше примере.
ComponentFactoryResolver
часто используется вместе с @ViewChild
. Но я не могу просто сделать это в цикле:
ngAfterViewInit() {
const dashWidgetsConf = this.widgetConfigs();
for (var i = 0; i < dashWidgetsConf.length; i++) {
const conf = dashWidgetsConf[i];
@ViewChild(conf.id, {read: ViewContainerRef}) var widgetTarget: ViewContainerRef;
var widgetComponent = this.componentFactoryResolver.resolveComponentFactory(UnitsComponent);
widgetTarget.createComponent(widgetComponent);
}
}
@viewchild дает 'Декораторы не действуют здесь. Как я могу загрузить компоненты из списка conf (в цикле) и добавить их внутри определенного div (divs got #{{conf.id}}
) в моем компоненте?
Выглядит очень похоже на http://stackoverflow.com/questions/36325212/angular-2-dynamic-tabs-with-user-click-chosen-components/36325468#36325468 с компонентами, созданными динамически, как показано в http://stackoverflow.com/questions/34784778/equivalent-of-compile-in-angular-2/37044960#37044960 –
Но в этих примерах - «цель» фиксирована - уже известный элемент, определенный как @ViewChild в самом начале. Мне нужно добавить их к x числу элементов с id-s, которые я не могу предопределить в шаблоне. – Agony
Вы можете предопределить все в шаблоне компонента, который создается во время выполнения, как показано во второй ссылке - и я имею в виду, что весь компонент создается во время выполнения, а не только динамически добавляется. –