Я хочу динамически загружать внешние JS-файлы в зависимости от состояния, которое я получаю по HTTP-вызову к службе.Угловая 2 как использовать скрипт sanitizer
Я хочу, чтобы вставить <script>
в app.component.html
как:
<script src="mysource/url"></script>
В моем компоненте я использовал bypassSecurityTrustScript
и bypassSecurityTrustHtml
ни работает для меня, мои теги сценария удаляются:
<div class='container-fluid'>
<div class='row'>
<div class='col-sm-12 body-content'>
<div [innerHTML]="script"></div>
<script type="text/javascript" [src] = "src"></script>
<router-outlet></router-outlet>
</div>
</div>
</div>
@Component({
selector: 'app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public script: any;
public src: any;
public constructor(private titleService: Title, private sanitizer: DomSanitizer) {
let x = '<script>alert("hi")</script>';
this.script = sanitizer.bypassSecurityTrustHtml(x);
this.src = sanitizer.bypassSecurityTrustScript('http://www.google.com');
}
Любая идея, как может В этом контексте я использую класс DomSanitizer
?
Вы могли его реализовать? – talentedandrew
@talentedandrew no Я изменил свой подход. Я использую Angular Universal, я решил добавить логику в представлениях cshtml. – shiva
ОК, я также столкнулся с подобной проблемой. Затем я использовал эту библиотеку https://www.npmjs.com/package/postscribe, которая сделала трюк для меня. В моем случае я создавал сторонний рекламный скрипт в своем угловом шаблоне компонента v4. Вы должны обязательно проверить это (библиотека). – talentedandrew