2016-10-04 29 views
12

Bir html dizesinde bir SVG ile DomSanitizer kullanıyorum. Eğik geçerli sürümüne ÖncekiAngular 2, DomSanitizer, bypassSecurityTrustHtml, SVG

, bu gayet güzel çalıştı:

this.domSanitizer.bypassSecurityTrustHtml(content);

Şimdi artık erişmek için yeni bir yol geri

SafeHtmlImpl {changingThisBreaksApplicationSecurity: "<svg> blah </svg>"} 
changingThisBreaksApplicationSecurity 

denilen bir nesneyi var mı alıyorum DomSanitizer'ın çıkışı? Bunu SafeHTML türü olarak mı almalıyım? Hala html'yi filtreliyorsa, bypassSecurityTrustHtml uygulamasının amacı nedir?

Kartpostaldaki herhangi bir cevap var mı? Lütfen ...

+0

Öyleyse sorun nedir? – micronyks

cevap

23

DEMO: https://plnkr.co/edit/Qke2jktna55h40ubUl8o?p=preview

import { DomSanitizer } from '@angular/platform-browser' 

@Pipe({ name: 'safeHtml'}) 
export class SafeHtmlPipe implements PipeTransform { 
    constructor(private sanitized: DomSanitizer) {} 
    transform(value) { 
    console.log(this.sanitized.bypassSecurityTrustHtml(value)) 
    return this.sanitized.bypassSecurityTrustHtml(value); 
    } 
} 

@Component({ 
    selector: 'my-app', 
    template: ` 
    <div [innerHtml]="html | safeHtml"> 
    </div> 
    `, 
}) 
export class App { 
    name:string; 
    html: safeHtml; 
    constructor() { 
    this.name = 'Angular2' 
    this.html = "<svg> blah </svg>"; 
    } 
} 
+0

Ben çalışmak için svg diğer svg değiştirdim. – micronyks

+0

Teşekkürler. Boru hakkında iyi bir fikir, onu böyle kurdum ve çalışıyor. Aslında işlevsel olarak farklı bir şey yapmıyor ama kim şikayet ediyor? İşe yarıyor. – Tom

+0

Şikayet aracı kimdir? – micronyks