Как добавить фоновое изображение с помощью ngStyle (angular2)?
Как использовать ngStyle для добавления фонового изображения? Мой код не работает:
this.photo = 'http://dl27.fotosklad.org.ua/20121020/6d0d7b1596285466e8bb06114a88c903.jpg';
<div [ngStyle]="{'background-image': url(' + photo + ')}"></div>
5 ответов:
Я думаю, вы могли бы попробовать это:
<div [ngStyle]="{'background-image': 'url(' + photo + ')'}"></div>
от чтения
ngStyle
выражение, Я думаю, что вы пропустили "'"...
import {BrowserModule, DomSanitizer} from '@angular/platform-browser' constructor(private sanitizer:DomSanitizer) { this.name = 'Angular!' this.backgroundImg = sanitizer.bypassSecurityTrustStyle('url(http://www.freephotos.se/images/photos_medium/white-flower-4.jpg)'); }
<div [style.background-image]="backgroundImg"></div>
см. также
похоже, ваш стиль был санирован, чтобы обойти его попробуйте использовать метод bypassSecurityTrustStyle от DomSanitizer.
import { Component, OnInit, Input } from '@angular/core'; import { DomSanitizer, SafeStyle } from '@angular/platform-browser'; @Component({ selector: 'my-component', templateUrl: './my-component.component.html', styleUrls: ['./my-component.component.scss'] }) export class MyComponent implements OnInit { public backgroundImg: SafeStyle; @Input() myObject: any; constructor(private sanitizer: DomSanitizer) {} ngOnInit() { this.backgroundImg = this.sanitizer.bypassSecurityTrustStyle('url(' + this.myObject.ImageUrl + ')'); } }
<div *ngIf="backgroundImg.length > 0" [style.background-image]="backgroundImg"></div>