Подтвердить что ты не робот

Как связать raw html в Angular2

Я использую Angular 2.0.0-beta.0, и я хочу создать и привязать некоторый простой HTML напрямую. Возможно ли и как?

Я попытался использовать

{{myField}}

но текст в myField будет экранирован.

Для Angular 1.x я нашел хиты для ng-bind-html, но это не поддерживается в 2.x

ТНХ Фрэнк

4b9b3361

Ответ 1

Привязать к атрибуту innerHTML

Есть 2 способа достижения:

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

Чтобы пометить переданный HTML как надежный, чтобы средство очистки Angulars DOM не удаляло части

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

с pipeкой как

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

  transform(value: any, args?: any): any {
    return this.sanitizer.bypassSecurityTrustHtml(value);
    // return this.sanitizer.bypassSecurityTrustStyle(style);
    // return this.sanitizer.bypassSecurityTrustXxx(style); - see docs
  }
}

См. также . В RC.1 некоторые стили не могут быть добавлены с использованием синтаксиса привязки.