Угловой дом дезинфицировать не работает правильно

Я использовал Angular DOM Sanitizer, чтобы получить HTML из текстовой области. Он отлично работает в первый раз после рендеринга всего проекта, но во второй раз после пересмотра компонента я получил это сообщение:

SafeValue должен использовать [свойство]= привязка: мой текст (см. http://g.co/ng/security).

Я уже передаю содержимое с привязкой свойства, используя свойство inner-html

const desc=this.sanitizer.bypassSecurityTrustHtml(this.ticket.description);
this.ticket.description = desc;
<p class="desc" [innerHTML]="ticket.description"></p>

Я ожидал, что мой обычный текст, но я получил тот вывод, описанный выше.

1 ответ

Решение

Вы можете связать напрямую, как показано ниже:

<p class="desc" [innerHTML]="sanitizer.bypassSecurityTrustStyle(ticket.description)"></p>

Метод привязки в html приводит к большой двусмысленности, как показано ниже. этот метод продолжает попадать в html, в вашем случае в ngOninit он работает нормально, что означает, что ваша логика работает нормально, теперь напишите ту же логику в ngonchanges(сохраните ее и в ngonint), она будет работать нормально

<p class="desc" [innerHTML]="sanitizer.bypassSecurityTrustStyle(ticket.description)"></p>

Другие вопросы по тегам