У меня есть следующий код:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-dinner',
template: '<h2>Test</h2> <script>alert("Test");</script>',
//templateUrl: './dinner.component.html',
styleUrls: ['./dinner.component.css']
})
export class DinnerComponent implements OnInit {
status = true;
constructor() { }
ngOnInit() {
this.status = true;
}
}
Когда страница загружена, теги javascript удаляются, что приводит только к:
<h2 _ngcontent-c2="">Test</h2>
в исходном коде.
Я предполагаю, что это из-за соображений безопасности / архитектуры (Правка: Да, это: https://angular.io/guide/security). Однако, для моей цели, есть ли способ настроить Angular 7 на , а не удалите теги Javascript?
Выше приведен обзор проблемы, с которой я сталкиваюсь, пытаясь сделать это: https://stackoverflow.com/a/42562462/4762482
Я понял сегмент здесь:
const compMetadata = new Component({
selector: 'dynamic-html',
template: this.html,
});
В результате создается новый Компонент со всеми тегами ng и script, которые были удалены.
[Final Edit] - я решил, что этот вопрос больше не актуален, так как считаю (хакерский)) решение, скорее всего, нарушит несколько рекомендаций OWASP и нарушит принципы архитектуры Angular 7.