Angular 如何使用两个管道成一行的角度
我有一个可以把数字转换成字符串的管道Angular 如何使用两个管道成一行的角度,angular,pipe,Angular,Pipe,我有一个可以把数字转换成字符串的管道 Import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'nomeMesPipe', }) export class NomeMesPipe implements PipeTransform { transform(value: any): string { if (value) { switch ( value // Convert
Import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'nomeMesPipe',
})
export class NomeMesPipe implements PipeTransform {
transform(value: any): string {
if (value) {
switch (
value // Converte o numero em nome do mês
) {
case 0:
value = 'Janeiro';
break;
case 1:
value = 'Fevereiro';
break;
case 2:
value = 'Março';
break;
case 3:
value = 'Abril';
break;
case 4:
value = 'Maio';
break;
case 5:
value = 'Junho';
break;
case 6:
value = 'Julho';
break;
case 7:
value = 'Agosto';
break;
case 8:
value = 'Setembro';
break;
case 9:
value = 'Outubro';
break;
case 10:
value = 'Novembro';
break;
case 11:
value = 'Dezembro';
break;
}
return value;
}
return '';
}
}
然后我有一个日期,使用日期管道将其分为天、月和年。
就这样,
{{data.dataDeAceite | date:'dd'}} // 15
{{data.dataDeAceite | date: 'M' }} //6
{{data.dataDeAceite | date:'yyyy'}} //2020
我想根据月数返回字符串,因此我尝试:
{{ data.dataDeAceite | date: 'M'| nomeMesPipe }}
但它不起作用
如何使用管道以葡萄牙语返回月份名称?它不起作用,因为如果将字符串转换为自定义管道中的数字,角度日期管道将以字符串形式返回值,它将起作用 试试这个:
transform(value: any): string {
if (value) {
switch (
parseFloat(value)
) {
case 0:
value = 'Janeiro';
break;
case 1:
value = 'Fevereiro';
break;
case 2:
value = 'Março';
break;
case 3:
value = 'Abril';
break;
case 4:
value = 'Maio';
break;
case 5:
value = 'Junho';
break;
case 6:
value = 'Julho';
break;
case 7:
value = 'Agosto';
break;
case 8:
value = 'Setembro';
break;
case 9:
value = 'Outubro';
break;
case 10:
value = 'Novembro';
break;
case 11:
value = 'Dezembro';
break;
}
return value;
}
return '';
}
它不起作用,因为若将字符串转换为自定义管道中的数字,角度日期管道将以字符串形式返回值,它将起作用 试试这个:
transform(value: any): string {
if (value) {
switch (
parseFloat(value)
) {
case 0:
value = 'Janeiro';
break;
case 1:
value = 'Fevereiro';
break;
case 2:
value = 'Março';
break;
case 3:
value = 'Abril';
break;
case 4:
value = 'Maio';
break;
case 5:
value = 'Junho';
break;
case 6:
value = 'Julho';
break;
case 7:
value = 'Agosto';
break;
case 8:
value = 'Setembro';
break;
case 9:
value = 'Outubro';
break;
case 10:
value = 'Novembro';
break;
case 11:
value = 'Dezembro';
break;
}
return value;
}
return '';
}
角度DatePipe返回字符串,而不是数字。你的开关盒检查号码。因此,将案例更改为字符串或将值更改为字符串 还有一个提示:日期不是以0开头的(所以6月是6日,不是5日):
从'@angular/core'导入{Pipe,PipeTransform};
@烟斗({
姓名:'nomeMes'
})
导出类NomesPipe实现PipeTransform{
转换(值:任意):字符串{
if(值&&!isNaN(值)){
值=+值;
开关(
值//转换为mês的数字
) {
案例1:
值=‘里约热内卢’;
打破
案例2:
值='Fevereiro';
打破
案例3:
值='Março';
打破
案例4:
值='Abril';
打破
案例5:
值='Maio';
打破
案例6:
值='Junho';
打破
案例7:
值='Julho';
打破
案例8:
值='Agosto';
打破
案例9:
值='Setembro';
打破
案例10:
值='Outubro';
打破
案例11:
值='novenbro';
打破
案例12:
值='Dezembro';
打破
}
返回值;
}
}
}
角度日期管道返回字符串,而不是数字。你的开关盒检查号码。因此,将案例更改为字符串或将值更改为字符串
还有一个提示:日期不是以0开头的(所以6月是6日,不是5日):
从'@angular/core'导入{Pipe,PipeTransform};
@烟斗({
姓名:'nomeMes'
})
导出类NomesPipe实现PipeTransform{
转换(值:任意):字符串{
if(值&&!isNaN(值)){
值=+值;
开关(
值//转换为mês的数字
) {
案例1:
值=‘里约热内卢’;
打破
案例2:
值='Fevereiro';
打破
案例3:
值='Março';
打破
案例4:
值='Abril';
打破
案例5:
值='Maio';
打破
案例6:
值='Junho';
打破
案例7:
值='Julho';
打破
案例8:
值='Agosto';
打破
案例9:
值='Setembro';
打破
案例10:
值='Outubro';
打破
案例11:
值='novenbro';
打破
案例12:
值='Dezembro';
打破
}
返回值;
}
}
}
为什么不使用{{data.datadeacite | date:'MMMM'}}
?它应该立即返回月份名称。它以英语返回,我需要葡萄牙语,这就是我创建管道的原因。更改区域设置是不够的?您不需要自定义管道。查看此链接,您将获得葡萄牙语设置:为什么不使用{{data.dataDeAceite}date:'MMMM'}
?它应该立即返回月份名称。它以英语返回,我需要葡萄牙语,这就是我创建管道的原因。更改区域设置是不够的?您不需要自定义管道。查看此链接,您将获得葡萄牙语设置: