ngStyle (angular2)을 사용하여 배경 이미지를 추가하는 방법은 무엇입니까?
ngStyle을 사용하여 배경 이미지를 추가하는 방법은 무엇입니까? 내 코드가 작동하지 않습니다.
this.photo = 'http://dl27.fotosklad.org.ua/20121020/6d0d7b1596285466e8bb06114a88c903.jpg';
<div [ngStyle]="{'background-image': url(' + photo + ')}"></div>
나는 당신이 이것을 시도 할 수 있다고 생각합니다.
<div [ngStyle]="{'background-image': 'url(' + photo + ')'}"></div>
ngStyle
표현을 읽어 보니 " '"를 놓친 것 같네요 ...
또한 이것을 시도 할 수 있습니다.
[style.background-image]="'url(' + photo + ')'"
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>
또한보십시오
- https://angular.io/docs/ts/latest/api/platform-browser/index/DomSanitizer-class.html
- RC.1에서는 바인딩 구문을 사용하여 일부 스타일을 추가 할 수 없습니다.
- 플 런커 예
스타일이 삭제 된 것 같습니다. 우회하려면 DomSanitizer의 bypassSecurityTrustStyle 메서드를 사용해보세요.
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>
대신 사용
[ngStyle]="{'background-image':' url(' + instagram?.image + ')'}"
URL에 공백이있어서 배경 이미지가 작동하지 않아 URL 인코딩이 필요했습니다.
이스케이프가 필요한 문자가없는 다른 이미지 URL을 시도하여 문제가 있는지 확인할 수 있습니다.
You could do this to the data in the component just using Javascripts built in encodeURI() method.
Personally I wanted to create a pipe for it so that it could be used in the template.
To do this you can create a very simple pipe. For example:
src/app/pipes/encode-uri.pipe.ts
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'encodeUri'
})
export class EncodeUriPipe implements PipeTransform {
transform(value: any, args?: any): any {
return encodeURI(value);
}
}
src/app/app.module.ts
import { EncodeUriPipe } from './pipes/encode-uri.pipe';
...
@NgModule({
imports: [
BrowserModule,
AppRoutingModule
...
],
exports: [
...
],
declarations: [
AppComponent,
EncodeUriPipe
],
bootstrap: [ AppComponent ]
})
export class AppModule { }
src/app/app.component.ts
import {Component} from '@angular/core';
@Component({
// tslint:disable-next-line
selector: 'body',
template: '<router-outlet></router-outlet>'
})
export class AppComponent {
myUrlVariable: string;
constructor() {
this.myUrlVariable = 'http://myimagewith space init.com';
}
}
src/app/app.component.html
<div [style.background-image]="'url(' + (myUrlVariable | encodeUri) + ')'" ></div>
참고URL : https://stackoverflow.com/questions/34875426/how-to-add-background-image-using-ngstyle-angular2
'IT story' 카테고리의 다른 글
Android에서 이미지를 다운로드하고 저장하는 방법 (0) | 2020.09.12 |
---|---|
iOS7에서 투명한 UIToolbar 또는 UINavigationBar를 그리는 방법 (0) | 2020.09.12 |
Sublime Text-왼쪽에 열린 파일 표시 (0) | 2020.09.12 |
라 라벨이 피벗 테이블에 여러 레코드를 추가하는 것을 방지 (0) | 2020.09.12 |
bash를 사용하여 터미널의 마지막 줄을 삭제하고 바꾸는 방법은 무엇입니까? (0) | 2020.09.12 |