使用for循环,我通过循环遍历Web请求中检索到的项目,为late
设置属性true
为*ngIf
,为后期项目创建了一个计数器,并增加了计数器
使用<h5 *ngIf="lateCount != 1">You have {{lateCount}} late items.</h5>
<h5 *ngIf="lateCount == 1">You have {{lateCount}} late item.</h5>
,我可以执行以下操作:
*ngIf
有没有两个 Uri uri = UpnpContentServer.makeVideoSubtitleUri(contentServerAddress, trackMetadata,subtitleFile);
MediaTrack track = new MediaTrack.Builder(tracks.size()+101 /* ID */,
MediaTrack.TYPE_TEXT)
.setName("Subtitle")
.setContentType("text/vtt")
.setSubtype(MediaTrack.SUBTYPE_CAPTIONS)
.setContentId(uri.toString())
/* language is required for subtitle type but optional otherwise */
.setLanguage("en")
.build();
tracks.add(track);
来做到这一点的方法吗?
答案 0 :(得分:1)
那么您只能在以下情况下触发s
符号:
<h5>You have {{lateCount}} late item<ng-container *ngIf="lateCount == 1">s</ng-container>.</h5>
另一种方法是编写一个为您执行此操作的管道,或者,您可以使用Angular i18n(任何其他库)来提供处理复数的功能。
答案 1 :(得分:1)
我知道现在有点晚了,但是有一种更巧妙的方法来解决问题,使用管道。
Here,您可以学习如何使用它,它非常简单且可重复使用:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'pluralSingular'
})
export class PluralSingularPipe implements PipeTransform {
transform(number: number, singularText: string, pluralText: string = null): string {
let pluralWord = pluralText ? pluralText : `${singularText}s`;
return number > 1 ? `${number} ${pluralWord}` : `${number} ${singularText}`;
}
}
用法:
{{ someNumberVariable | pluralSingular:'city':'cities }}
答案 2 :(得分:1)
我知道这个问题是很久以前问过的,但是只是为了完成争论,还有另一种方法可以完成给定的任务,那就是使用ngPlural
指令。
ngPlural
伪指令主要基于数字值添加/删除DOM元素
ngPlural
指令非常方便,可与通用语言环境数据存储库(CLDR)定义的类别匹配一起使用,例如:一个,几个或多个。从角度文档中,您可以使用如下指令:
<some-element [ngPlural]="value">
<ng-template ngPluralCase="=0">there is nothing</ng-template>
<ng-template ngPluralCase="=1">there is one</ng-template>
<ng-template ngPluralCase="few">there are a few</ng-template>
</some-element>
有关指令的更多信息,请参见ngPlural。 希望对您有所帮助:)