テンプレートにコンマで区切られたアイテムのリストを作成したいのですが、最後のアイテムにコンマを入れたくありません:
one, two, three
Angular 2 のテンプレート構文でこれを達成するにはどうすればよいですか?
テンプレートにコンマで区切られたアイテムのリストを作成したいのですが、最後のアイテムにコンマを入れたくありません:
one, two, three
Angular 2 のテンプレート構文でこれを達成するにはどうすればよいですか?
私はエリックの答えが好きです(サンプルのプランカーについては彼のコメントを参照してください):
<span *ngFor="let item of items; let isLast=last">
{{item}}{{isLast ? '' : ', '}}
</span>
私の最初の答えはindex
、NgFor microsyntaxでオプションを使用することでした:
<span *ngFor="#item of items, #i=index">
{{item}}{{i === items.length - 1 ? '' : ', '}}
</span>
別の方法として、 https::before
://stackoverflow.com/a/31805688/215945 で説明されているように、CSS 構文を使用するだけです。
もっと簡単なアプローチは
<span> {{items.join(", ")}} </span>
これを行う必要がありましたが、私の値は属性にあるため、マークされた回答は機能しませんでした。
誰かがこれが役立つと思うかもしれません:
パイプを使用しました。文字列を構築することもできましたが、パイプの方が読みやすいと感じました
CLI
ng g p Delimiter
パイプ
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'delimiter'
})
export class DelimiterPipe implements PipeTransform {
transform(value: string, delimiter: string, isLast: boolean) {
return !isLast ? value + delimiter : value;
}
}
意見
<div ngFor="let item of items; let isLast=last"
[innerHtml]="item | delimiter:', ':isLast">
</div>
ビューにhtmlが必要だったので、属性を使用する必要があります。
<div ngFor="let item of items; let isLast=last"
[innerHtml]="item | safeHtml | delimiter:', ':isLast">
</div>