ngFor循环出来的数组,在判断上区别可以自定义一个属性给循环出来的当前数组,供使用

例如:循环出来了一个列表,要求点击不同的项目时,被点击的背景色改变为黄色,字体颜色改变为白色。由于是ngFor循环的所以每一项的类和DOM都是相同的所以很容易造成所有颜色都改变。这个时候给当前的列表定义一个属性:list.classtype就是给list定义了classtype属性。然后在用循环遍历来确定当前点击的,将当前点击的和未点击的区分开来。然后进行样式和事件处理。

下面这个例子是对样式的改变。当点击某一个按钮的时候按钮颜色改变,其余颜色不变。

html:

<span  *ngFor="let list of FQAList;let i=index" (click)="colorChange(i)">
    <li *ngIf="list.hot=='1'">
        <a  [ngClass]="{'yellow':list.classtype}" href="{{WebUrl}}" >{{list.name}}</a>
    </li>
</span>
ts

   // 点击改变背景色
public colorChange(i){
    console.log(i);//接收到当前点击的下标
    console.log(this.FQAList[i].type_id+"id");
   this.FQAList[i].classtype = true;
   for(var j=0;j<this.FQAList.length;j++){ //做一个循环判断,当循环的j==i的时候改变背景色。不等的时候也就是其他值的情况下不改变
       if(j != i){
           this.FQAList[j].classtype = false;
       }
   }


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

傻小胖

如果觉得不错就给点赏钱吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值