如何在 angular 2 中的自定义管道中使用服务
How to use services in custom pipes in angular 2
我想在 html 上以年为单位显示月份。我的过滤器将月数作为输入,它应该 return 年。
例如:输入12,则return翻译成1年。如果超过 1 年,则应 return '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>
我不知道如何做到这一点。请帮忙。
使用
安装翻译库及其 http-loader
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
会立即 return 值,还有一些有用的值,例如 stream
,它会给你一个可观察的值,即使在语言变化。 get
不会。您可以使用更多方法,所以我建议您查看文档并了解最适合您的方法。
我想在 html 上以年为单位显示月份。我的过滤器将月数作为输入,它应该 return 年。
例如:输入12,则return翻译成1年。如果超过 1 年,则应 return '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>
我不知道如何做到这一点。请帮忙。
使用
安装翻译库及其 http-loadernpm 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
会立即 return 值,还有一些有用的值,例如 stream
,它会给你一个可观察的值,即使在语言变化。 get
不会。您可以使用更多方法,所以我建议您查看文档并了解最适合您的方法。