语法正确的复数/单数结尾

时间:2018-07-31 20:28:38

标签: angular

使用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); 来做到这一点的方法吗?

3 个答案:

答案 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。 希望对您有所帮助:)