Pesquisa de site

javascript - Angular 6 exibir imagem de fundo tratada


Tenho conseguido construir a URL da imagem sem receber os erros do sanitizador, mas minha imagem de fundo ainda não aparece. Preciso acessar a propriedade "changingThisBreaksApplicationSecurity" para que esta imagem seja exibida corretamente? Qualquer ajuda será muito apreciada.

ATUALIZAÇÃO: Parece errado acessar essa propriedade na marcação, mas funciona.

Resposta #1

Referencie a propriedade real changingThisBreaksApplicationSecurity, já que você precisa obter a string da URL.

Resposta #2

Para obter uma URL de recurso de linha do objeto safeValue, a função DomSanitizerImpl.sanitize() pode ser usada:

...
import { ɵDomSanitizerImpl, DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
...

// row URL 
url = 'https://www.gravatar.com/avatar/5ea793dcbaff5a5e29ad3d05ef564d86';

// safe value type URL
safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(this.url);

// sanitized back from safe value raw URL
sanitizedUrl = this._sanitizerImpl.sanitize(SecurityContext.RESOURCE_URL, this.safeUrl);

...
constructor(protected _sanitizer: DomSanitizer, protected _sanitizerImpl: ɵDomSanitizerImpl) {}

Eu criei um STACKBLITZ para demonstrar, por favor, veja os console.logs

Artigos relacionados