javascript - Korrekt måte å gi DomSanitizer til komponent med Angular 2 RC6


Jeg forsøker å bruke DomSanitizer for å rense en dynamisk URL i en komponent, men jeg klarer ikke å finne ut hva den riktige måten å spesifisere en Provider for denne tjenesten på er.

Jeg bruker Angular 2.0.0-rc.6

Her er min nåværende komponent:

@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() {}
}

Dette resulterer i feilen this.sanitizer.bypassSecurityTrustResourceUrl er ikke en funksjon ved kjøring.

Kan noen vise meg et eksempel på hvordan man riktig kan gi en Provider for DomSanitizer? Takk!

Svar #1

Du trenger ikke lenger å deklarere providers: [ DomSanitizer ].
Du trenger bare å importere DomSanitizer som vist nedenfor,

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

i komponenten injiserer du det gjennom en konstruktør som nedenfor,

constructor(private sanitizer: DomSanitizer) {}

Svar #2

Importer disse-

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

definer variabel

trustedDashboardUrl : SafeUrl;

Bruk det i konstruktøren slik:

constructor(
    private sanitizer: DomSanitizer) {}

Spesifiser URL slik som dette-

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

Se om dette hjelper.

Relaterte artikler