20

Bir Bileşen içinde dinamik bir URL sterilize etmek için DomSanitizer kullanmaya çalışıyorum. Bu hizmet için bir Sağlayıcı belirtmek için doğru yolu neye karar veriyorum gibi görünmüyor. Bu çalışma zamanında hata this.sanitizer.bypassSecurityTrustResourceUrl is not a function sonuçlanırDoğru yol Açısal 2 RC6 ile Bileşen için DomSanitizer Sağlayın

@Component({ 
    templateUrl: './app.component.html', 
    styleUrls: [ './app.component.css' ], 
    providers: [ DomSanitizer ], 
}) 
export class AppComponent implements OnInit 
{ 
    public url: SafeResourceUrl; 

    constructor(private sanitizer: DomSanitizer) {} 

    ngOnInit() { 
     let id = 'an-id-goes-here'; 
     let url = `https://www.youtube.com/embed/${id}`; 

     this.videoUrl = this.sanitizer.bypassSecurityTrustResourceUrl(url); 
    } 

    ngOnDestroy() {} 
} 

: Ben Angular 2.0.0-rc.6

kullanıyorum

İşte benim şimdiki bileşenidir.

Birisi bana DomSanitizer için bir Sağlayıcının nasıl düzgün bir şekilde sağlanabileceğine dair bir örnek gösterebilir mi? Teşekkürler!

cevap

35

Sen providers: [ DomSanitizer ] artık ilan etmeye gerek yok BrowserModule

@NgModule({ 
    imports: [BrowserModule], 
}) 

See ithal sahip olun.
Sadece ihtiyaç

constructor(private sanitizer: DomSanitizer) {} 
+0

Bu benim sorunumdu. DomSanitizer'ı bir sağlayıcı olarak kullanmaya çalışıyordum. Hiçbir sağlayıcı ile hiç çekicilik gibi çalışır. Teşekkürler! – kalmas

+0

size bekliyoruz! – micronyks

1

ikisi de sadece bu tip döküm olmadan gerekli yöntemler sağlar çünkü

constructor(private sanitizer: DomSanitizer) {} 
constructor(private sanitizer: Sanitizer) {} 

DomSanitizer enjekte iyidir çalışmalıdır.

ayrıca In RC.1 some styles can't be added using binding syntax

+0

o 'özel dezenfektanı olmalıdır: DomSanitizer' sadece – micronyks

+0

Aslında ikisi de aynı çalışması gerekir https://github.com/angular/angular/blob/979657989bab4fb93faf6a207d30760faa9bd696/modules/%40angular/platform-browser/src/browser.ts # L41 –

6

İthalat

onun- bileşeni olarak aşağıda bir yapıcı yoluyla enjekte aşağıda gösterildiği gibi import DomSanitizer,

import { DomSanitizer, SafeResourceUrl, SafeUrl} from '@angular/platform-browser'; 

e

trustedDashboardUrl : SafeUrl; 

bu yardımcı olur bak bu-

this.trustedDashboardUrl = 
         this.sanitizer.bypassSecurityTrustResourceUrl 
          ("URL"); 

gibi bu-

constructor(
    private sanitizer: DomSanitizer) {} 

-Specifiy URL gibi yapıcı günlerde kullan variable- tanımlar.

İlgili konular