2016-01-04 17 views
24

Uso Angular 2.0.0-beta.0 e desidero creare e associare direttamente un semplice codice HTML. È possibile e come?Come associare HTML grezzo in Angular2

Ho cercato di usare

{{myField}} 

ma il testo in myField otterrà sfuggito.

Per 1.xi angolare trovato risultati per ng-bind-html, ma questo non sembra essere supportato in 2.x

thx Frank

risposta

63

legarsi al innerHTML attributo

C'è 2 modo per raggiungere:

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

Per contrassegnare il passato HTML come attendibile in modo che Angolari DOM disinfettante non elimina le parti del

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

con un tubo come

@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 
    } 
} 

Vedi anche In RC.1 some styles can't be added using binding syntax

+0

sto usando la stessa cosa a impedendogli di rimuovere l'evento click, ma ora l'evento click non si attiva, ho visto altre risposte che dichiarano un evento dinamico click, ma come faccio a far funzionare il clic in questa semplice situazione menzionata sopra – Rex

+0

Non puoi aggiungere nulla Angolare -specif ic usando '[innerHTML] =" ... "' vincolante. L'unico modo per farlo funzionare è creare e compilare un componente in fase di runtime. –

+0

avete un piccolo esempio per questo, quell'esempio di clic di una scheda dinamica è molto, voglio semplicemente implementare collegamenti di ancoraggio dinamici. – Rex

Problemi correlati