Como usar o ngStyle para adicionar imagem de fundo? Meu código não funciona:
this.photo = 'http://dl27.fotosklad.org.ua/20121020/6d0d7b1596285466e8bb06114a88c903.jpg';
<div [ngStyle]="{'background-image': url(' + photo + ')}"></div>
javascript
html
css
angular
Ignat
fonte
fonte
Respostas:
Eu acho que você poderia tentar isso:
Pela leitura de sua
ngStyle
expressão, acho que você perdeu alguns "'" ...fonte
this.photo = `url(${photo})`;
[style.background-image]='photo'
.[ngStyle]
e de[style.background-image]
renderização.Você também pode tentar isso:
[style.background-image]="'url(' + photo + ')'"
fonte
<div [ngStyle]="{ color: 'red', 'font-size': '22px' }">First</div>
e<div [style.color]="'red'" [style.font-size.px]="22">Second</div>
Veja também
fonte
Parece que seu estilo foi higienizado. Para contorná-lo, tente usar o método bypassSecurityTrustStyle do DomSanitizer.
fonte
Use em vez disso
fonte
Minha imagem de plano de fundo não estava funcionando porque a URL tinha um espaço e, portanto, precisei codificá-la.
Você pode verificar se esse é o problema que está enfrentando tentando um URL de imagem diferente que não tenha caracteres que precisem de escape.
Você poderia fazer isso com os dados no componente apenas usando Javascripts integrados em encodeURI () método .
Pessoalmente, queria criar um pipe para ele para que pudesse ser usado no modelo.
Para fazer isso, você pode criar um tubo muito simples. Por exemplo:
src / app / pipes / encode-uri.pipe.ts
src / app / app.module.ts
src / app / app.component.ts
src / app / app.component.html
fonte
Você pode usar 2 métodos:
Método 1
Método 2
Observação: é importante cercar o URL com " char.
fonte
Geralmente, a imagem não é exibida porque seu URL contém espaços. No seu caso você quase fez tudo certo. Exceto uma coisa - você não adicionou aspas simples como faria se especificar a imagem de fundo em css. Ie
Para fazer isso, escape o caractere quot em HTML via \ '
fonte
Minha solução, usando a instrução if..else. É sempre uma boa prática, se você quiser evitar frustrações desnecessárias, verificar se sua variável existe e está configurada. Caso contrário, forneça uma imagem de backup no caso; Você também pode especificar várias propriedades de estilo, como
background-position: center
etc.fonte