2017-02-22 7 views
0

Я хочу динамически загружать внешние 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?

+0

Вы могли его реализовать? – talentedandrew

+0

@talentedandrew no Я изменил свой подход. Я использую Angular Universal, я решил добавить логику в представлениях cshtml. – shiva

+0

ОК, я также столкнулся с подобной проблемой. Затем я использовал эту библиотеку https://www.npmjs.com/package/postscribe, которая сделала трюк для меня. В моем случае я создавал сторонний рекламный скрипт в своем угловом шаблоне компонента v4. Вы должны обязательно проверить это (библиотека). – talentedandrew

ответ

0
this.src = sanitizer.bypassSecurityTrustResourceUrl('http://www.example.com'); 

где http://www.example.com - это URL-адрес, из которого выполнен сценарий.

+0

Означает ли это, что я могу использовать тег '

Смежные вопросы