How to translate HTML string to real HTML element by ng-for in Angular 2?

前端 未结 5 1694
走了就别回头了
走了就别回头了 2020-12-01 16:20

As I know, in angular 1.x I can use $sce service to meet my requirment like this

myApp.filter(\'trustAsHTML\', [\'$sce\', function($sce){
  return function(t         


        
5条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-01 16:49

    In angular2 there's no ng-include, trustAsHtml, ng-bind-html nor similar, so your best option is to bind to innerHtml. Obviously this let you open to all kind of attacks, so it's up to you to parse/escape the content and for that you can use pipes.

    @Pipe({name: 'escapeHtml', pure: false})
    class EscapeHtmlPipe implements PipeTransform {
       transform(value: any, args: any[] = []) {
           // Escape 'value' and return it
       }
    }
    
    @Component({
        selector: 'hello',
        template: `
    `, pipes : [EscapeHtmlPipe] }) export class Hello { constructor() { this.myHtmlString = "This is some bold text"; } }

    Here's a plnkr with a naive html escaping/parsing.

    I hope it helps :)

提交回复
热议问题