2017-12-22 14 views
-1

は、私はそれをこのコードでangle4のコンポーネントにサーバー側からHTMLを挿入するにはどうすればよいですか?

import { Component, ElementRef, ViewChild, AfterViewChecked, TemplateRef, ViewContainerRef } from '@angular/core'; 

@Component({ 
    selector: 'app-root', 
    template: ` 
<div> 
<h3>this is the container</h3> 
    <div #holder></div> 
</div> 
    ` 
}) 
export class AppComponent implements AfterViewChecked { 
    @ViewChild('holder', { read: TemplateRef }) _template: TemplateRef<any>; 
    constructor() { } 
    ngAfterViewChecked() { 
    debugger; 
    this._template.createEmbeddedView('<div>this is a new "div" element</div>');  
    } 
} 

を行うことができますどのように私は、ID =「ホルダー」で別のdivにdiv要素を挿入しようとしています、私はコンポーネントに、サーバー側からいくつかのHTML要素を挿入するとします私はそれを達成することができません。

答えて

1

私は達成するための簡単な方法を得ました。

HTML

<div [innerHTML]="yourHtml"></div> 

TS

public yourHtml = '<div>this is a new "div" element</div>'; 
+0

この書き込みをしようとしました:P – Swoox

+1

をしかし、それは純粋な素子構造を壊すlool を対処するための良い方法ではありません。推奨される方法は、 'cdk'と挿入を使用することです(しかし、コンポーネントだけをサポートするので、より難しいです)。 –

+0

私の動的に接続された要素にクリックが付いているようなイベントがある場合、これはうまくいかないと思います –

関連する問題