我想在html上显示几年的月份。我的过滤器需要几个月作为输入,它应该返回几年。
例如:如果输入为12,则应将翻译后的值返回为1年。如果超过1年,则应返回“2年”。
我的烟斗包含:
import { Pipe, PipeTransform} from '@angular/core';
@Pipe({name : 'displayMonthsInYears '})
export class DisplayMonthsInYears implements PipeTransform{
transform(noOfMonths : number) : any {
if(noOfMonths > 12){
return (noOfMonths / 12 + $translate.instace('YEARS'));
}
return (noOfMonths / 12 + $translate.instace('YEAR'));
}
}
和html是:
<div class="text-left">
{{ contractDuration | displayMonthsInYears }}
</div>
我不知道如何实现这一目标。请帮忙。
答案 0 :(得分:3)
使用
安装翻译库及其http-loadernegpks
按照npm install @ngx-translate/core @ngx-translate/http-loader --save
文档中的设置指南进行操作。然后导入服务:
@ngx-translate
将其注入管道并按如下方式使用:
import {TranslateService} from '@ngx-translate/core';
@Pipe({name : 'displayMonthsInYears '})
export class DisplayMonthsInYears implements PipeTransform{
constructor(private translate: TranslateService) {}
transform(noOfMonths : number) : any {
if (noOfMonths > 12) {
return (noOfMonths / 12 + this.translate.instant('YEARS'));
}
return (noOfMonths / 12 + this.translate.instant('YEAR'));
}
}
会立即返回该值,还有一些有用的值,例如instant
,它会为您提供一个可观察的值,即使语言发生变化,它也会将值继续传输到您的订阅。哪个stream
赢了。您可以使用更多方法,因此我建议您查看文档并了解哪种方法最适合您。