Wie verwende ich ngStyle, um ein Hintergrundbild hinzuzufügen? Mein Code funktioniert nicht:
this.photo = 'http://dl27.fotosklad.org.ua/20121020/6d0d7b1596285466e8bb06114a88c903.jpg';
<div [ngStyle]="{'background-image': url(' + photo + ')}"></div>
javascript
html
css
angular
Ignat
quelle
quelle
Antworten:
Ich denke, Sie könnten dies versuchen:
Nach dem Lesen Ihres
ngStyle
Gesichtsausdrucks haben Sie wahrscheinlich ein "'" verpasst ...quelle
this.photo = `url(${photo})`;
[style.background-image]='photo'
.[ngStyle]
und[style.background-image]
Rendering - Versagen.Sie können dies auch versuchen:
[style.background-image]="'url(' + photo + ')'"
quelle
<div [ngStyle]="{ color: 'red', 'font-size': '22px' }">First</div>
und<div [style.color]="'red'" [style.font-size.px]="22">Second</div>
Siehe auch
quelle
Ihr Stil wurde anscheinend bereinigt. Um ihn zu umgehen, verwenden Sie die bypassSecurityTrustStyle-Methode von DomSanitizer.
quelle
Verwenden Sie stattdessen
quelle
Mein Hintergrundbild funktionierte nicht, da die URL ein Leerzeichen enthielt und ich sie daher per URL codieren musste.
Sie können überprüfen, ob dies das Problem ist, indem Sie eine andere Bild-URL ausprobieren, die keine Zeichen enthält, die maskiert werden müssen.
Sie können dies mit den Daten in der Komponente tun, indem Sie nur in encodeURI () integrierte Javascripts verwenden. -Methode integrierten verwenden.
Persönlich wollte ich eine Pipe dafür erstellen, damit sie in der Vorlage verwendet werden kann.
Dazu können Sie eine sehr einfache Pipe erstellen. Beispielsweise:
src / app / pipes / encode-uri.pipe.ts
src / app / app.module.ts
src / app / app.component.ts
src / app / app.component.html
quelle
Sie können 2 Methoden verwenden:
Methode 1
Methode 2
Hinweis: Es ist wichtig, die URL mit " char " zu umgeben .
quelle
Meistens wird das Bild nicht angezeigt, da Ihre URL Leerzeichen enthält. In Ihrem Fall haben Sie fast alles richtig gemacht. Abgesehen von einer Sache - Sie haben keine einfachen Anführungszeichen hinzugefügt, wie Sie es tun, wenn Sie das Hintergrundbild in CSS Ie angeben
Um dies zu tun, maskieren Sie das Anführungszeichen in HTML über \ '
quelle
Meine Lösung mit der Anweisung if..else. Es ist immer eine gute Praxis, wenn Sie unnötige Frustrationen vermeiden möchten, um zu überprüfen, ob Ihre Variable vorhanden und festgelegt ist. Andernfalls geben Sie für den Fall ein Backup-Image an. Sie können auch mehrere Stileigenschaften wie
background-position: center
usw. angeben .quelle