与えられたjsonデータ構造に従ってコンポーネントを読み込むことができるかどうか試してみるために、小さなpocを作成中です。 jsonはコンポーネントセレクタを提供し、配列します。私は、オンラインで見つけた参考資料に従って、小さな例を試しました。私は基本的にコンポーネントのカップルを作成アンギュラjsonスキーマを使用した角4の動的コンポーネントの読み込み
による方法をお勧めします「componentFactoryResolver」を使用し、私のモジュールに
entryComponents: [PersonalDetailsComponent, ContactDetailsComponent],
と私のアプリのコンポーネントで、私は次のように使用をたどるようentrycomponentデコレータでそれを登録しましたコード
@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);
}
私が使用しているコンポーネントごとにコンポーネントを作成する必要があります。これを内部ループにすることは、それを実行する最善の方法ではないかもしれません。誰かが私に正しい方法でそれをするためにいくつかの頭を与えることができれば、私は非常に感謝します。 すでにcomponentFactoryResolverは、コードからコンポーネントを動的に作成するための正しい方法で見つけてきたように、私の実際のJSONこの
{
"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"
}
]
}
多くのようなもののように見えるでしょうが、あなたの入力
読んでください[ここでは、角度の動的コンポーネントについて知りたいことがあります](https://blog.angularindepth.com/here-is-what-you-need-to-know-about-dynamic-components-in -angular-ac1e96167f9e) –