2016-01-04 6 views
24

Ich benutze Angular 2.0.0-beta.0 und ich möchte einige einfache HTML direkt erstellen und binden. Ist das möglich und wie?Wie binde ich raw html in Angular2

Ich versuchte

{{myField}} 

aber der Text in myField entkommen bekommen zu verwenden.

Für Angular 1.xi gefunden Treffer zu ng-bind-html, aber dies nicht in 2.x

thx unterstützt werden scheint Frank

Antwort

63

bindet an das innerHTML Attribut

Es gibt 2 Möglichkeiten:

<div [innerHTML]="myField"></div> 
<div innerHTML="{{myField}}"></div> 

den übergebenen HTML markieren als vertrauenswürdig, so dass winkelförmigen Stangen DOM Sanitizer Teile nicht mit einem Rohr wie

@Pipe({name: 'safeHtml'}) 
export class Safe { 
    constructor(private sanitizer:Sanitizer){} 

    transform(style) { 
    return this.sanitizer.bypassSecurityTrustStyle(style); 
    // return this.sanitizer.bypassSecurityTrustHtml(style); 
    // return this.sanitizer.bypassSecurityTrustXxx(style); - see docs 
    } 
} 

Siehe auch In RC.1 some styles can't be added using binding syntax

+0

ich die gleiche Sache bin mit

<div [innerHTML]="myField | safeHtml"></div> 

Streifen zu Verhindere, dass das Klickereignis nicht gelöscht wird, aber jetzt klickt das Klickereignis nicht. Ich habe andere Antworten für einen dynamischen Ereignisklick gesehen, aber wie kann ich den Klick in dieser oben erwähnten einfachen Situation machen? – Rex

+0

Sie können nichts Angulares hinzufügen -spezifiziert ic mit '[innerHTML] =" ... "' Bindung. Die einzige Möglichkeit, dies zu erreichen, besteht darin, eine Komponente zur Laufzeit zu erstellen und zu kompilieren. –

+0

haben Sie ein kleines Beispiel dafür, das dynamische Tab-Klick-Beispiel ist viel zu viel, ich möchte einfach dynamische Anker-Links implementieren. – Rex