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));
}
