使用普通的旧对象进行Angular 7 LOCALE_ID注入

时间:2019-02-10 14:38:15

标签: angular typescript dependency-injection localization

我正在使用语言环境注入,并且能够将其注入构造函数中,我想知道是否可以将其作为属性注入。这将使我想到下一个问题,我可以将其注入普通模型中吗?我正在使用class-transformer将http结果映射到可用对象。我可以创建一个locale.ts文件,该文件可以映射到不同的版本,这样我就可以使用,但是我想以最正确的方式做到这一点

export class AppComponent implements OnInit {  

  @Inject(LOCALE_ID) public localeProperty: string;

  constructor(@Inject(LOCALE_ID) public locale: string, public appService: AppService) {
  }

  ngOnInit() {

    console.log('AppComponent.locale: ', this.locale);
    console.log('AppComponent.localeProperty: ', this.localeProperty);
  

AppComponent.locale:fr

     

AppComponent.localeProperty:未定义

在我的位置模型中,我希望模型知道要使用的标签,理想情况下,我希望能够注入LOCALE_ID

import {locale} from '../../environments/locale';


export class Location {

  enLabel: string;
  frLabel: string;

  // can i do something here
  constructor() {
  }

  get label() {
    return this[`${locale}Label`] ? this[`${locale}Label`] : this.enLabel;
  }

在此处混音 https://github.com/ricardosaracino/class-transformer

0 个答案:

没有答案