2016-07-09 17 views
12

Jak interpolować ciąg znaków za pomocą html za pomocą angular2. wiem w kanciastej 1.x jest $interpolate(templateString)(miniScope);, ale nie mogę znaleźć tego samego dla kątowego2.Angular2 - Ciąg interpolujący z html

Załóżmy, że mam szablonu takiego: Hello my name is {{name}}

i wiążąca jest jak name: "<strong>Pardeep</strong>"

więc chcę prowadzić jak

Hello my name is Pardeep

Refer for angular1

for angular2 see here but i'm unable to understand clearly

jakiej pomocy?

Odpowiedz

15

Aby to zrobić, można po prostu użyć dyrektywy [innerHTML].

http://plnkr.co/edit/6x04QSKhqbDwPvdsLSL9?p=preview

import {Component, Pipe} from '@angular/core' 

@Component({ 
    selector: 'my-app', 
    template: ` 
      Hello my name is <span [innerHTML]="myName"></span> 
    `, 
}) 
export class AppComponent { 

    myName='<strong>Pardeep</strong>'; 

} 

Aktualizacja:

Sprawdziłem to nie działa w ten sposób po RC.1 uwalnianiu.

Powiedzmy, że praca z RC.4 można użyć DomSanitizationService jak pokazano poniżej,

@Component({ 
    selector: 'my-app', 

    template: ` 
    <div [innerHTML]="myCheckbox"></div> 
    `, 
}) 
export class AppComponent { 

    dangerousUrl='<input type="checkbox">'; 

    constructor(sanitizer: DomSanitizationService) { 

    this.myCheckbox= sanitizer.bypassSecurityTrustHtml(this.dangerousUrl); 
    } 
} 

http://plnkr.co/edit/Yexm1Mf8B3FRhNch3EMz?p=preview

+0

wiem i co w przypadku, jeśli 'mojanazwa = ' ";'? –

+0

Sprawdź teraz, czy działa z API 'DomSanitizationService'. – micronyks

+0

innerHTML nadal działa i nie chcesz ufać html, chyba że naprawdę masz ... Zapoznaj się z dokumentacją pod "Content Security" https://angular.io/docs/ts/latest/guide/template- syntax.html #! # other-bindingings – Thibs