Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何使用两个管道成一行的角度_Angular_Pipe - Fatal编程技术网

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'}
?它应该立即返回月份名称。它以英语返回,我需要葡萄牙语,这就是我创建管道的原因。更改区域设置是不够的?您不需要自定义管道。查看此链接,您将获得葡萄牙语设置: