Ng Для использования ngClass при выпуске строк и столбцов
Я использую 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>
Есть ли лучший способ помещать класс в столбцы вместо столбцов? Заранее благодарю вас.
Ответы
Ответ 1
Ваш первый пример кода работает отлично Пример плунжера
@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'];
}
![введите описание изображения здесь]()
Ответ 2
пусть index = index;
тогда [index] = index;
then [class.odd] = "index% 2";
Ответ 3
работал у меня
<ion-card *ngFor ="let item of itemsCat; let odd=odd; let even=even " [ngClass]="{ odd: odd, even:even}" >
.....
</ion-card>
Ответ 4
Если это не 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>