DynamicComponentLoader устарел. Я пытаюсь создать родительский компонент, который отображает дочерние компоненты внутри родительского компонента на основе массива дочерних компонентов, что означает, что каждый пользователь имеет файл настроек, содержащий дочерние компоненты, которые должны быть в родительском. Сейчас родитель выглядит примерно так:Угловой RC 2 - Динамически визуализировать компоненты из json-файла
import { Component, OnInit, Input, ComponentResolver, ViewContainerRef } from '@angular/core';
import { Child1Component } from '../children/child1.component'
import { Child2Component } from '../children/child2.component'
import { Child3Component } from '../children/child3.component'
import { ParentService } from './parent.service'
@Component({
selector: 'parent',
directives: [Child1Component, Child2Component, Child3Component],
providers: [ParentService],
template: `
<style>
.parent{
background-image: linear-gradient(141deg, #8ecb45 0%, #97cd76 71%, #96d885 100%);
width: 100%;
height: 200px;
}
</style>
<div class="parent"></div>
`
})
export class ParentComponent {
constructor(private parentService:ParentService, private children: any, viewContainer: ViewContainerRef, private componentResolver: ComponentResolver) {
this.children = parentService.getChildren();
for(var i = 0; i < children.length; i++) {
this.componentResolver.resolveComponent(children[i].component)
.then(componentFactory => {
const ctxInjector = viewContainer.injector;
return viewContainer.createComponent(componentFactory, 0, ctxInjector);
})
}
}
}
Прямо сейчас, позвоните службу в конструкторе ParentComponent, кажется, вызывает некоторые вопросы. Но прежде чем я работал над циклом над компонентомResolver, я смог подключить компонент под этим родительским узлом, но не внутри него.
Кто-нибудь знает, как лучше построить динамический родительский компонент? Это управление типом панели инструментов. В большинстве примеров указано, сколько компонентов будет загружено. Это не будет работать для меня. Я видел несколько сообщений о том, как это сделать, но до сих пор я не видел ничего работающего с RC с конфигурационным файлом.
Это ближе к тому, что я пытаюсь сделать: http://plnkr.co/edit/jAmMZKz2VqponmFtPpes?p=preview , но он использует DCL ...
В настоящее время я получаю сообщение об ошибке, что я не понял, при запуске приложения: TypeError: не могу прочитать property 'query' of null
Спасибо за помощь!
Вот ссылка, если вы чувствуете, как загрузив его и придавая ему удар:
https://github.com/weswhite/ng2-layout
EDIT/UPDATE: Это, возможно, придется делать с детьми: любой я инъекцией. Я не думаю, что я делаю, что правильно, все еще полагая, что немного из ...
Вам не нужно перечислять компоненты в 'директив: [...]', когда они только добавляют 'viewContainerRef.createComponent()'. http://stackoverflow.com/questions/36325212/angular-2-dynamic-tabs-with-user-click-chosen-components/36325468#36325468 - это мой ответ на аналогичный вопрос. –
Что такое 'частные дети: какие-нибудь,' должны пройти? –
Я понял, что сейчас частное все не так. У вас есть идея о том, как вводить какой-либо объект, представляющий массив компонентов? Прямо сейчас я пытаюсь сделать что-то большее, как создание дочернего класса и наличие дочернего ресурса: Child [] на компоненте. Не догадались, что все еще – WesW