简体   繁体   English

Angular ngFor li HTML元素集样式

[英]Angular ngFor li html element set style

<ul class="days">
    <liclass="day" *ngFor="let day of currentDays; let i = index"(click)="setStyle()">
        {{day}}
    </li> 
  </ul>

My question is how to add style to exactly specified element in list, when i use ngClass styles are added to all elements? 我的问题是,当我使用ngClass样式时,如何将样式添加到列表中的指定元素? It posible using method add pass reference to element and set style? 可以使用方法将传递引用添加到元素并设置样式吗?

You can conditionally set using ngStyle. 您可以有条件地使用ngStyle进行设置。 refer the following code. 请参考以下代码。

<div [ngStyle]="{'background-color':isTrue === true ? 'green' : 'red' }"></<div>

Or refer the stackblitz link for another solution. 或参考stackblitz链接以获取其他解决方案。

enter link description here 在此处输入链接说明

You can use 您可以使用

<li [class.your-class]="expression">

For example: 例如:

<li [class.mat-elevation-z10]="i === selectedElement">

Or you can use ngClass with expressions 或者您可以将ngClass与表达式ngClass使用

<li [ngClass]="{'first': true, 'second': true, 'third': false}">

Where first , second and third are your classes and true , true , false are the expressions. 其中firstsecondthird是您的类,而truetruefalse是表达式。 In the example above, both first and second class would be applied. 在上面的示例中,将应用第一类和第二类。

You can set different class to each element 您可以为每个element设置不同的class

<ul class="days">
    <li *ngFor="let day of currentDays; let i = index" [class]="'day'+(index+1)">
        {{day}}
    </li> 
  </ul>

in css set style to each one: 在css中将样式设置为每个:

.day1{
...
}

You can use ngClass itself with conditions. 您可以将ngClass本身与条件一起使用。 You can replace RequiredDay string with variable. 您可以将RequiredDay字符串替换为变量。

<ul class="days">
    <li [ngClass]="{'desiredClass':day === 'RequiredDay'}" *ngFor="let day of currentDays; let i = index" (click)="setStyle()">
       {{day}}
    </li> 
 </ul>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM