создать экземпляр абстрактного класса DomSanitizer - PullRequest
0 голосов
/ 18 января 2020

в компоненте Angular мы можем внедрить DomSanitizer и использовать его.

@component({..})
export class myComponent{
 constructor(private sanitizer: DomSanitizer){
  //now we can use this.sanitizer.bypassSecurityTrustHtml(..)
}

}

но как использовать DomSanitizer, не вставляя его в конструктор?

//this is not a class, so it doesn't contain a constructor() 

export function keepHtml(value: string){
 sanitizer = new DomSanitizer(); //error: Cannot create an instance of an abstract class
 return sanitizer.bypassSecurityTrustHtml(content);
}

Не знаю Я не хочу импортировать DomSanitizer в мой класс, а затем передать его, чтобы сохранить Html () в качестве второго параметра.

Я хочу, чтобы вся реализация была выполнена внутри файла функций.

также я не хочу преобразовывать функцию keep Html () в метод класса.

1 Ответ

0 голосов
/ 18 января 2020

Вы можете попробовать использовать внутреннюю реализацию DomSanitizer следующим образом:

import { ɵDomSanitizerImpl } from '@angular/platform-browser/';

export function keepHtml(value: string){
 const sanitizer = new ɵDomSanitizerImpl(document);
 return sanitizer.bypassSecurityTrustHtml(content);
}

Однако это не очень хороший способ для go. Внутренняя реализация может измениться в будущем и сломать ваш код.

...