index
*ngFor
とthエンordinal
パイプと一以上-より-インデックス変換:
<div *ngFor="let item of items; let i = index">
<p>Pick your {{ i + 1 | ordinal }} photo</p>
</div>
ordinal
パイプ:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'ordinal'})
export class OrdinalPipe implements PipeTransform {
transform(int) {
const ones = +int % 10, tens = +int % 100 - ones;
return int + ["th","st","nd","rd"][ tens === 10 || ones > 3 ? 0 : ones ];
}
}
@Brad's answerとコメント* ngFor index
に関する重要な情報を提供します。この答えは、数値を(具体的にはインデックスよりも1つ多い)適切な序数 - 接尾辞を含む文字列に変換するためのパイプを提供するというものである。 2
を"2nd"
に変換してください。 index
は0ベースであり、序数は1ベースであるため、i
はパイプの前にインクリメントされることに注意してください。
なぜアイテムのプロパティとして表示するテキストを含めるだけではないのですか? – WiredPrairie