无效的管道参数: '缺少"pt-BR"语言环境的本地数据.',对于管道'xl',生产环境下的Angular。

10
我创建了一个管道,用于以巴西货币格式显示货币价值。在本地测试时一切正常,但是当在Azure的DEV/Prod环境中运行时,会出现以下错误信息。这个错误也会在运行"ng serves --prod"时发生。
以下是模块中的配置:

import { LOCALE_ID } from '@angular/core';
import { registerLocaleData } from '@angular/common';
import localePt from '@angular/common/locales/pt';


registerLocaleData(localePt);


  providers: [
    {
      provide: LOCALE_ID,
      useValue: 'pt-PT'
    }
  ],

将PIPE作为HTML

 {{produto.valorAntesPromocao | number:'1.2-2'}}

错误信息:

InvalidPipeArgument: 对于管道 'xl',参数无效:'缺少“pt-BR”语言环境的本地化数据。'

5个回答

25

你可以尝试以这种方式添加

import { LOCALE_ID } from '@angular/core';
import { registerLocaleData } from '@angular/common';
import localePt from '@angular/common/locales/pt';

registerLocaleData(localePt);

@NgModule({
      providers: [
        { provide: LOCALE_ID, useValue: 'pt-BR' }    
      ]  
})
export class AppModule { }

7

尝试以这种方式进行:

import {LOCALE_ID} from '@angular/core';
import localePt from '@angular/common/locales/pt';
import {registerLocaleData} from '@angular/common';

registerLocaleData(localePt, 'pt');

@NgModule({
    providers: [
        {
            provide: LOCALE_ID,
            useValue: 'pt'
        }
    ]
})

0
你可以直接使用“pt”作为提供程序的值:
{
    provide: LOCALE_ID,
    useValue: 'pt'
}

根据github上的讨论串,Angular使用“pt”表示巴西格式,“pt-pt”表示欧洲葡萄牙语。

0

这是我解决这个问题的方法:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { PostComponent } from './post/post.component';
//**************** imports here ****************
import { DEFAULT_CURRENCY_CODE, LOCALE_ID } from '@angular/core';
import ptBr from '@angular/common/locales/pt';
import { registerLocaleData } from '@angular/common';
// registerlocaledata
registerLocaleData(ptBr);
@NgModule({
  declarations: [AppComponent, PostComponent],
  imports: [BrowserModule],
//configuring providers.
  providers: [
    {
      provide: LOCALE_ID,
      useValue: 'pt',
    },
    {
      provide: DEFAULT_CURRENCY_CODE,
      useValue: 'BRL',
    },
  ],
  bootstrap: [AppComponent],
})
export class AppModule {}

0
import { DEFAULT_CURRENCY_CODE, LOCALE_ID } from '@angular/core';
import ptBr from '@angular/common/locales/pt';
import { registerLocaleData } from '@angular/common';
    
registerLocaleData(ptBr);
    
providers: [
    {
    provide: LOCALE_ID,
    useValue: 'pt',
    },
    {
    provide: DEFAULT_CURRENCY_CODE,
    useValue: 'BRL',
    },
],

这对我来说完美地运作了,感谢我们的朋友@MarcosVidal

这对我来说完美地运作了,感谢我们的朋友@MarcosVidal


1
这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - avariant
目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接