Угловой дом дезинфицировать не работает правильно
Я использовал 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>