Невозможно обойти angular дезинфицировать безопасность - PullRequest
0 голосов
/ 14 января 2020

У меня есть редактор wysiwyg (angular -редактор ):

<angular-editor [(ngModel)]="code" name="code"></angular-editor>

Под редактором я пытаюсь использовать ngx-highlight js:

<pre>
  <code [highlight]="code" [lineNumbers]="true">

Итак, когда я набираю в редакторе что-то вроде <p>test</p>, я бы хотел, чтобы код (ngModel) был <p>test</p> вместо &lt;p&gt;test&lt;/p&gt;, чтобы он стал выделено в <code>.

Я пробовал использовать трубу:

transform(html: string): SafeHtml {
  return this.sr.bypassSecurityTrustHtml(html);
}

Это не работает, и в любом случае значение может быть HTML, JS, любое язык и, возможно, несколько языков, поэтому я не могу обойти и HTML и JS (я полагаю, потому что есть методы доверия HTML и trustScript).

Итак, как code может быть <p>test</p> (ответ должен охватывать не только HTML, но любой язык, либо <script>...</script>) вместо &lt;p&gt;test&lt;/p&gt?

Я думаю, что я не могу использовать класс DomSanitizer, потому что он охватывает HTML или Script, а не оба .

NB. Меня не волнует безопасность, только я буду использовать приложение.

1 Ответ

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

Мне пришлось отформатировать код, который я хочу выделить.

enter image description here

...