编辑:这个答案与Angular2+有关!对不起,我错过了标签!
原答案:
至于如果设置了某个 Input 值,您只想应用(或设置)一个属性的非常简单的情况,它就像
<my-element [conditionalAttr]="optionalValue || false">
它与以下内容相同:
<my-element [conditionalAttr]="optionalValue ? optionalValue : false">
(因此,如果给定,则应用 optionalValue,否则表达式为 false 并且不应用属性。)
示例:我有这样的情况,我让应用颜色但也应用任意样式,其中颜色属性不起作用,因为它已经设置(即使没有给出 @Input() 颜色):
@Component({
selector: "rb-icon",
styleUrls: ["icon.component.scss"],
template: "<span class="ic-{{icon}}" [style.color]="color==color" [ngStyle]="styleObj" ></span>",
})
export class IconComponent {
@Input() icon: string;
@Input() color: string;
@Input() styles: string;
private styleObj: object;
...
}
因此,“style.color”仅在有颜色属性时才设置,否则可以使用“styles”字符串中的颜色属性。
当然,这也可以通过
[style.color]="color"
和
@Input color: (string | boolean) = false;