Row Striped does not work properly on my *ngFor

Asked

Viewed 26 times

0

I’m trying to apply an effect of row stripped on the lines of a *ngFor but apparently it is being applied in all my Rows.

I tried something like:

HTML

<div class="row ml-4" *ngIf="visivel">
  <div class="divJanelaResultadoParcial" id="autocompletar" class="col-xl-9 divJanelaResultadoParcial">
    <a class="divJanelaProduto" *ngFor="let produto of produtos" [routerLink]="['/produtos', produto.id, produto.slug]" >
      <div class="row linhaProduto row-striped">

        <div class="col-3">
          <img class="img" src="{{ produto.foto_prin_1 }}"/>
        </div>

        <div class="col-6">
          <span class="ml-2">{{ produto.nome }}</span>
        </div>

        <div class="col-3">
          <span class="ml-2">{{ produto.preco | currency:'BRL' }}</span>
        </div>

      </div>
    </a>
  </div>
</div>

CSS

  .img {
        width:60px;
        height: 60px;
    }

    .divJanelaResultadoParcial{
        z-index: 20;
    }

    .linhaProduto{
        display: flex;
        align-items: center;
    }


    .row-striped:nth-of-type(odd){
        background-color: #efefef;
      }

      .row-striped:nth-of-type(even){
        background-color: #ffffff;
      }

My result:

inserir a descrição da imagem aqui

  • I believe that the nth-of-type should be applied in the class divJanelaProduto, for it is she who repeats herself. In row-striped there will always be one for each divJanelaProduto, but there are several divJanelaProduto for each row ml-4.

1 answer

0

I got it that way:

<div class="row ml-4" *ngIf="visivel">
    <div class="divJanelaResultadoParcial" id="autocompletar" class="col-xl-9 divJanelaResultadoParcial">
      <a class="divJanelaProduto" *ngFor="let produto of produtos; let even = even; let odd = odd" [routerLink]="['/produtos', produto.id, produto.slug]">
        <div class="row linhaProduto row-striped" [ngClass]="{ odd: odd, even: even }">

          <div class="col-3">
            <img class="img" src="{{ produto.foto_prin_1 }}"/>
          </div>

          <div class="col-6">
            <span class="ml-2">{{ produto.nome }}</span>
          </div>

          <div class="col-3">
            <span class="ml-2">{{ produto.preco | currency:'BRL' }}</span>
          </div>

        </div>
      </a>
    </div>
  </div>

Browser other questions tagged

You are not signed in. Login or sign up in order to post.