angular - Typen 'SafeResourceUrl' kan inte tilldelas typen 'string'


Jag försöker sanera en pdf-url och vill tilldela den till en variabel av typen string så att jag kan använda den för pdf-visaren. Finns det något sätt att göra det? Om jag använder typen any för pdfSrc-typen får jag Ogiltigt parameterobjekt: behöver antingen .data, .range eller .url i <pdf-viewer>.

Observera: URL:en som jag använde är endast för referensändamål, jag skulle använda externa URL:er på den platsen

landingpage.component.ts

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

export class LandingpageComponent implements OnInit {
     public pdfSrc: string;
}

constructor(    
    private sanitizer: DomSanitizer) {
}

fnOpenAsset() {     
   let url = 'http://localhost/pdf_viewer-master/18/docs/pdf.pdf';
   this.pdfSrc = this.sanitizer.bypassSecurityTrustResourceUrl(url);
}

landingpage.component.html

<pdf-viewer class="alignComponentCenter" [src]="pdfSrc" 
</pdf-viewer>

Svar #1

Jag har ett sätt att fixa detta. Jag försökte sanera SafeResourceUrl igen med sanitize()-metoden vars returvärde är string | null.

Om du vill använda bypassSecurityTrustUrl(), kommer SecurityContext.URL att användas. I mitt fall använde jag SecurityContext.RESOURCE_URL

export class LandingpageComponent implements OnInit {
     public pdfSrc: string;
}

constructor(    
    private sanitizer: DomSanitizer) {
}

fnOpenAsset() {     
   let url = 'http://localhost/pdf_viewer-master/18/docs/pdf.pdf';
   this.pdfSrc = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, this.sanitizer.bypassSecurityTrustResourceUrl(url));
}

Relaterade artiklar