0
2つのコンポーネントがあります。今、例えばinnerHTMLとして動的にロードする必要があります。角2:innerHTMLの動的コンポーネントをロード中
Angular2成分-1クラスimport {
Component,
OnInit,
ViewEncapsulation
} from '@angular/core';
@Component({
selector: 'component-1',
templateUrl: './component-1.html',
encapsulation: ViewEncapsulation.None
})
export class Component1 implements OnInit {
public ngOnInit() {
this.domEl = '<component-2 data="1234"></component-2>'
}
}
成分-2において
成分-1.html
<div [innerHTML]="domEl | safeHtml"></div>
以下のように既に[]宣言を介しapp.module.tsファイル内に注入されます。また、safeHtmlは安全なHTML変換に使用されるパイプです。
問題があっても、コンポーネント2はロードされていません。誰も私はこれを修正する方法を提案することはできますか?
注:
- 私はコンポーネント-1.htmlでコンポーネント-2が含まれる場合は、直接それが動作します。しかし、コンポーネント-2を動的に注入することはできません。
- StackはAngular2、TypeScript、Webpack上にビルドされています。
innerHtmlを読み込む代わりに、ngIfまたはngSwitchでテンプレートを使用します。 – Fals
できません、私の場合はうまくいかないでしょう。 –
コンポーネントをhtmlとして挿入することはできません。コンポーネントはシャドウドームからリアルドームにレンダリングされます。あなたは** innerHTML **を使って何かを注入すると、生のHTMLであると予想されます。パイプラインをレンダリングする必要はありません。これまで述べたように、ngIfまたはngSwitchを使用する必要があります – Fals