【Angular Material】`mat-icon`을 동적으로 표시하고 싶다
8456 단어 AngularangularMaterial
소개
이번에는 Angular Material의 'MatIcon'을 동적으로 표시하는 방법을 공유한다.
이번에 사용할 소스 코드
icon-example.component.html
<h2>アイコン増殖バグ</h2>
<button mat-flat-button (click)="addIcon()" color="accent">Add Button</button>
<div class="icon-area">
<mat-icon>bug_report</mat-icon>
</div>
icon-example.component.ts
import { Component, ElementRef, Renderer2 } from '@angular/core';
@Component({
selector: 'app-icon-example',
templateUrl: './icon-example.component.html',
styleUrls: ['./icon-example.component.scss'],
})
export class IconExampleComponent {
constructor(private renderer: Renderer2, private elRef: ElementRef) {}
/**
* アイコンを追加する
*/
public addIcon() {
const addIcon = this.createIcon('bug_report');
const iconDiv = this.elRef.nativeElement.querySelector('.icon-area');
this.renderer.appendChild(iconDiv, addIcon);
}
/**
* アイコンを作成する
* @param iconName
*/
private createIcon(iconName: string) {
const icon = this.renderer.createElement('mat-icon');
const text = this.renderer.createText(iconName);
this.renderer.appendChild(icon, text);
return icon;
}
}
'Add Button'이 클릭될 때마다 벌레 아이콘이 늘어나게 했다.
이제 실제로 버튼을 눌러 본다.
아, 문자만 추가되어 아이콘이 표시되지 않는다.
클래스 추가도 필요
mat-icon
를 추가하는 것만으로는 안되고 클래스도 추가할 필요가 있다.추가하는 Class는
mat-icon
, material-icons
이다.icon-example.component.ts
/**
* アイコンを作成する
* @param iconName
*/
private createIcon(iconName: string) {
const icon = this.renderer.createElement('mat-icon');
const text = this.renderer.createText(iconName);
this.renderer.appendChild(icon, text);
this.renderer.addClass(icon, 'mat-icon'); // ←追加
this.renderer.addClass(icon, 'material-icons'); // ←追加
return icon;
}
실제로 움직여 본다.
성공적으로 아이콘이 추가되었습니다.
요약
mat-icon
, material-icons
참고
Reference
이 문제에 관하여(【Angular Material】`mat-icon`을 동적으로 표시하고 싶다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masaks/items/331cc8ccf41c362971ed텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)