ngStyle을 사용하여 그리드의 열 수를 동적으로 변경
7643 단어 angularcssjavascript
승리를 위한 ngStyle
ngStyle은 함수와 같은 표현식에 바인딩하여 스타일을 설정할 수 있는 내장 속성 지시어입니다.
여기 내 card-container.component.html
에서 내 getStyles
방법에 바인딩되어 있습니다.
<div class="cards-grid" [ngStyle]="getStyles()">
<app-card
*ngFor="let band of bands; index as i"
[bandData]="bands[i]"
></app-card>
</div>
내card-container.component.ts
메서드의 이 getStyles는 내가 정의한 스타일이 있는 객체를 반환합니다. 마법은 grid-template-columns
값에 있습니다. columns
라는 속성을 전달하기 위해 문자열 보간을 사용하고 있습니다.
public getStyles() {
return {
display: 'grid',
'grid-template-columns': `repeat(${this.columns}, 1fr)`,
'justify-items': 'center',
};
}
전체 card-container.component.html
구성 요소를 보면 내가 입력을 사용하고 있음을 알 수 있으며 여기에서 columns
속성 값이 나옵니다.
<div class="card-container">
<div class="cards-header">
<mat-form-field>
<mat-label>Columns</mat-label>
<input matInput type="number" min="1" max="5" [(ngModel)]="columns" />
</mat-form-field>
</div>
<div class="cards-grid" [ngStyle]="getStyles()">
<app-card
*ngFor="let band of bands; index as i"
[bandData]="bands[i]"
></app-card>
</div>
</div>
전체card-container.component.ts
파일을 보면 columns 속성을 4로 초기화한 것을 볼 수 있습니다.
import { Component, OnInit } from '@angular/core';
import * as bandData from './powermetal.json';
@Component({
selector: 'app-card-container',
templateUrl: './card-container.component.html',
styleUrls: ['./card-container.component.scss'],
})
export class CardContainerComponent implements OnInit {
public columns: number = 4;
public bands: any = (bandData as any).default;
constructor() {}
ngOnInit(): void {}
public getStyles() {
return {
display: 'grid',
'grid-template-columns': `repeat(${this.columns}, 1fr)`,
'justify-items': 'center',
};
}
}
생각?
이것에 대한 당신의 생각을 듣고 싶습니다. 내가 여기에서 하는 것처럼 입력을 사용하고 싶지 않을 것입니다. 열 수는 설정 페이지 또는 응용 프로그램에 맞는 다른 위치에 들어갈 수 있습니다.
저장소
코드를 보고 싶다면 here에서 확인하실 수 있습니다.
Reference
이 문제에 관하여(ngStyle을 사용하여 그리드의 열 수를 동적으로 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/juniordevforlife/dynamically-change-number-of-columns-in-a-grid-using-ngstyle-5fed
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<div class="cards-grid" [ngStyle]="getStyles()">
<app-card
*ngFor="let band of bands; index as i"
[bandData]="bands[i]"
></app-card>
</div>
public getStyles() {
return {
display: 'grid',
'grid-template-columns': `repeat(${this.columns}, 1fr)`,
'justify-items': 'center',
};
}
<div class="card-container">
<div class="cards-header">
<mat-form-field>
<mat-label>Columns</mat-label>
<input matInput type="number" min="1" max="5" [(ngModel)]="columns" />
</mat-form-field>
</div>
<div class="cards-grid" [ngStyle]="getStyles()">
<app-card
*ngFor="let band of bands; index as i"
[bandData]="bands[i]"
></app-card>
</div>
</div>
import { Component, OnInit } from '@angular/core';
import * as bandData from './powermetal.json';
@Component({
selector: 'app-card-container',
templateUrl: './card-container.component.html',
styleUrls: ['./card-container.component.scss'],
})
export class CardContainerComponent implements OnInit {
public columns: number = 4;
public bands: any = (bandData as any).default;
constructor() {}
ngOnInit(): void {}
public getStyles() {
return {
display: 'grid',
'grid-template-columns': `repeat(${this.columns}, 1fr)`,
'justify-items': 'center',
};
}
}
이것에 대한 당신의 생각을 듣고 싶습니다. 내가 여기에서 하는 것처럼 입력을 사용하고 싶지 않을 것입니다. 열 수는 설정 페이지 또는 응용 프로그램에 맞는 다른 위치에 들어갈 수 있습니다.
저장소
코드를 보고 싶다면 here에서 확인하실 수 있습니다.
Reference
이 문제에 관하여(ngStyle을 사용하여 그리드의 열 수를 동적으로 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/juniordevforlife/dynamically-change-number-of-columns-in-a-grid-using-ngstyle-5fed
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(ngStyle을 사용하여 그리드의 열 수를 동적으로 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/juniordevforlife/dynamically-change-number-of-columns-in-a-grid-using-ngstyle-5fed텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)