【发布时间】:2018-03-06 16:44:08
【问题描述】:
这就是我想要的,下面。基本上,我想在 angular/material 中使用 mat-icon 来访问材质图标,并使用 ngStyle 指令动态调整它们的大小(或者如果有更好的解决方案)。我需要动态大小(我认为),因为我需要做的是围绕 mat-icon 设置一个圆形 2px 边框,该边框的大小取决于 mat-icon 的 font-size 属性的大小(例如一个 36px 的图标需要一个 72px 的边框和一个 38px 的边框半径)。 我仍在学习 Angular/Material 以及它是如何工作的,而我不想做的是硬编码解决方案。相反,如果我可以在组件选择器中放置一个值,然后将该值用作可以分配给 CSS 属性的变量(例如通过 ngStyle),事情就会解决。
注意:下面的代码是 1/2 工作,但在控制台(日志)我得到
undefined 和 undefinedpx
为价值观。
已编辑:当前代码
import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';
@Component({
selector: 'app-circle-icon-container',
templateUrl: './circle-icon-container.component.html',
styleUrls: ['./circle-icon-container.component.css'],
encapsulation: ViewEncapsulation.None
})
export class CircleIconContainerComponent implements OnInit {
@Input() inputSize: string;
private fontSize = this.inputSize + 'px';
constructor() {
console.log(this.inputSize);
console.log(this.fontSize);
}
ngOnInit() { }
}
//component.html
<div class="flex center align-center circle-icon-container" [ngStyle]="{ 'font-size': fontSize, 'background-color': background_color }">
<mat-icon>business</mat-icon>
</div>
//parent component.html
<div class="icon-container flex is-column align-center">
<app-circle-icon-container inputSize="300"></app-circle-icon-container>
</div>
【问题讨论】:
标签: javascript angular ng-style