2017-02-22 5 views
0

서비스에 대한 http 호출로 얻는 조건에 따라 외부 JS 파일을 동적으로로드하려고합니다. 내가 bypassSecurityTrustScriptbypassSecurityTrustHtml을 사용하지 둘 다 나를 위해 작동 내 구성 요소에서각도 2 스크립트 살균 장치 사용 방법

<script src="mysource/url"></script> 

, 내 스크립트 태그가 제거 얻을 :

나는 app.component.html로에 <script>를 삽입하는 방법을

<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 아니오 내 접근 방식을 변경했습니다. Angular Universal을 사용하고 있는데, cshtml 뷰에 로직을 추가하기로 결정했습니다. – shiva

+0

좋아, 나는 또한 비슷한 문제에 직면했다. 그런 다음이 라이브러리 https://www.npmjs.com/package/postscribe를 사용하여 저의 트릭을 만들었습니다. 제 경우에는 각진 v4 구성 요소 템플릿에 제 3 자 광고 스크립트를 렌더링했습니다. 확실히 확인해야합니다. (도서관). – talentedandrew

답변

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

여기서 http://www.example.com은 스크립트를 가져 오는 URL입니다.

+0

app.component.html에서 '