在Angular 6中,可以根据环境变量加载localeId的解决方法如下:
src
文件夹中创建一个名为environments
的文件夹。environments
文件夹中创建两个环境配置文件:environment.prod.ts
和environment.ts
。environment.ts
文件中添加以下代码:export const environment = {
production: false,
localeId: 'en-US' // 默认的localeId
};
environment.prod.ts
文件中添加以下代码:export const environment = {
production: true,
localeId: 'zh-CN' // 生产环境的localeId
};
angular.json
文件,并在projects -> architect -> build -> configurations -> production
中添加以下内容:"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
...
}
src
文件夹中创建一个名为i18n
的文件夹,并在其中创建一个名称为locale.service.ts
的文件。locale.service.ts
文件中添加以下代码:import { Injectable } from '@angular/core';
import { environment } from '../environments/environment';
@Injectable({
providedIn: 'root'
})
export class LocaleService {
getLocaleId(): string {
return environment.localeId;
}
}
LocaleService
,并使用getLocaleId()
方法获取localeId。import { Component } from '@angular/core';
import { LocaleService } from './i18n/locale.service';
@Component({
selector: 'app-root',
template: `
Locale ID: {{ localeId }}
`
})
export class AppComponent {
localeId: string;
constructor(private localeService: LocaleService) {
this.localeId = this.localeService.getLocaleId();
}
}
通过以上步骤,您可以根据环境变量加载不同的localeId。在开发环境中,将使用environment.ts
文件中定义的localeId,而在生产环境中,将使用environment.prod.ts
文件中定义的localeId。