Je suis en train de créer un petit poc pour essayer de savoir s'il est possible de charger des composants en fonction d'une structure de données json donnée. json fournira un tableau de sélecteurs de composants. J'ai essayé un petit exemple selon les matériaux de référence que j'ai trouvé en ligne. J'ai utilisé le "componentFactoryResolver" qui est recommandé par Angular.
J'ai créé deux composants et je les ai enregistrés dans mon module avec le décorateur entrycomponent comme suit
entryComponents: [PersonalDetailsComponent, ContactDetailsComponent],
et dans mon composant d'application j'utilise le code suivant
@ViewChild('dynamicInsert', { read: ViewContainerRef }) dynamicInsert: ViewContainerRef;
constructor(private componentFactoryResolver: ComponentFactoryResolver) {
}
ngAfterViewInit() {
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(PersonalDetailsComponent );
const componentFactory2 = this.componentFactoryResolver.resolveComponentFactory(ContactDetailsComponent);
this.dynamicInsert.clear();
this.dynamicInsert.createComponent(componentFactory);
this.dynamicInsert.createComponent(componentFactory2);
}
et comme vous le voyez, je dois créer un composant pour chaque composant que j'utilise. mais avoir ceci à l'intérieur d'une boucle pourrait ne pas être la meilleure façon de le faire. j'apprécierais beaucoup si quelqu'un pouvait me donner quelques conseils pour le faire d'une manière appropriée. mon json actuel ressemblerait à quelque chose comme ceci
{
"step":"1",
"viewed":false,
"stepDependant":{
"parentComponent":null,
"childComponent":null,
"varMap":null
},
"widgets":[
{
"Component":"shipper",
"inputs":[
{
"ServiceLine":"Export"
}
],
"outputs":[
],
"name":"Shipper Details"
},
{
"Component":"shipper",
"inputs":[
{
"ServiceLine":"Export"
}
],
"outputs":[
],
"name":"Consignee Details"
},
{
"Component":"status-of-shipment",
"inputs":[
],
"outputs":[
],
"name":"Status of Shipment"
}
]
}
j'apprécie beaucoup vos contributions