¿Cómo usar ngStyle para agregar una imagen de fondo? Mi código no funciona:
this.photo = 'http://dl27.fotosklad.org.ua/20121020/6d0d7b1596285466e8bb06114a88c903.jpg';
<div [ngStyle]="{'background-image': url(' + photo + ')}"></div>
javascript
html
css
angular
Ignat
fuente
fuente
Respuestas:
Creo que podrías probar esto:
Al leer tu
ngStyle
expresión, supongo que te perdiste algunos "'" ...fuente
this.photo = `url(${photo})`;
[style.background-image]='photo'
.[ngStyle]
y silencio[style.background-image]
.También puedes probar esto:
[style.background-image]="'url(' + photo + ')'"
fuente
<div [ngStyle]="{ color: 'red', 'font-size': '22px' }">First</div>
y<div [style.color]="'red'" [style.font-size.px]="22">Second</div>
Ver también
fuente
Parece que su estilo ha sido desinfectado, para evitarlo, intente usar el método bypassSecurityTrustStyle de DomSanitizer.
fuente
Usar en su lugar
fuente
Mi imagen de fondo no funcionaba porque la URL tenía un espacio y, por lo tanto, necesitaba codificarla.
Puede verificar si este es el problema que tiene probando una URL de imagen diferente que no tenga caracteres que deban escapar.
Puede hacer esto con los datos en el componente simplemente usando Javascripts integrados en encodeURI () método .
Personalmente, quería crear una tubería para que pudiera usarse en la plantilla.
Para hacer esto, puede crear una tubería muy simple. Por ejemplo:
src / app / pipe / encode-uri.pipe.ts
src / app / app.module.ts
src / app / app.component.ts
src / app / app.component.html
fuente
Puede utilizar 2 métodos:
Método 1
Método 2
Nota: es importante rodear la URL con " char.
fuente
En general, la imagen no se muestra porque su URL contiene espacios. En tu caso, casi hiciste todo bien. Excepto una cosa: no ha agregado comillas simples como lo hace si especifica la imagen de fondo en css Es decir
Para hacerlo, escape el carácter de comillas en HTML mediante \ '
fuente
Mi solución, usando la declaración if..else. Siempre es una buena práctica, si quiere evitar frustraciones innecesarias, comprobar que su variable existe y está configurada. De lo contrario, proporcione una imagen de respaldo por si acaso; También puede especificar varias propiedades de estilo, como
background-position: center
, etc.fuente