Полосатый ряд не работает в угловых * ngFor - PullRequest
2 голосов
/ 03 апреля 2019

Я пытаюсь применить строку эффекта, раздетую в моих строках, которые имеют * nfFor, но, очевидно, класс применяет серый фон во всех строках.

Я пытаюсь что-то вроде:

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;
      }

Это результат:

enter image description here

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Вы можете использовать четные и нечетные функции из ngFor.

*ngFor="let produto of produtos; let even = even; let odd = odd"


<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>
.row-striped.even {
  background-color: #ffffff;
}

.row-striped.odd {
  background-color: #efefef;
}
0 голосов
/ 03 апреля 2019

* нгДля не идентификации элемента, а создания цикла.

Если вы хотите создать эффект чередования, попробуйте следующее:

HTML:

<li *ngFor="let item of [1,2,3,4,5,6]; let odd = odd">
    <p [class.odd]="odd">item</p>
</li>

CSS:

.odd{
  background:grey
}

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...