20

我正在使用 Angular2 及其 ngFor。我想为奇数行和偶数行添加类,所以我可以通过颜色在视觉上将它们分开。

这是我的代码(实际上不起作用):

<div *ngFor="#meeting of meetingList; #index=index; #odd=odd; #even=even;"
  class="row"
  [ngClass]="{ odd: odd, even: even }
">
  <div class="col"></div>
  <div class="col"></div>
</div>

虽然如果我这样做,代码可以工作:

<div *ngFor="#meeting of meetingList; #index=index; #odd=odd; #even=even;"
  class="row"
">
  <div class="col" [ngClass]="{ odd: odd, even: even }"></div>
  <div class="col" [ngClass]="{ odd: odd, even: even }"></div>
</div>

有没有更好的方法将类放到行而不是列?先感谢您。

4

4 回答 4

46

您的第一个代码示例运行良好Plunker 示例

@Component({
  selector: 'my-app',
  styles: [`
    .even { color: red; }
    .odd { color: green; }
    `],
  template: `
  <h2>Hello {{name}}</h2>
  <div *ngFor="let meeting of meetingList; let index=index; let odd=odd; let even=even;"
      class="row"
      [ngClass]="{ odd: odd, even: even }">{{meeting}}
    <div class="col"></div>
    <div class="col"></div>
  </div>
`
})
export class App {
  meetingList = ['a', 'b', 'c'];
}

在此处输入图像描述

于 2016-04-02T16:32:13.693 回答
4

让索引=索引;

然后 [索引] = 索引;

然后 [class.odd] = "index%2";

于 2016-09-16T18:32:23.683 回答
3

如果不是odd,那么even无论如何。因此,节省一些字节和周期:

<div *ngFor="let meeting of meetingList; let odd = odd" [ngClass]="odd ? 'odd' : 'even'">
    {{meeting}}
</div>

你可以更进一步,只在 css 中使用nth-child带有odd关键字的选择器:

<style> 
p:nth-child(odd) {
  background: gray;
}

p:nth-child(even) {
  background: white;
}
</style>

<p>First paragraph.</p>
<p>Second paragraph.</p>
<p>Third paragraph.</p>
<p>Fourth paragraph.</p>

于 2019-08-21T12:04:34.303 回答
1

为我工作

<ion-card *ngFor ="let item of itemsCat; let odd=odd; let even=even " [ngClass]="{ odd: odd, even:even}" >
.....
</ion-card>
于 2017-04-25T13:10:51.697 回答