Angular 7 LOCALE_ID Инъекция с использованием простых старых объектов - PullRequest
0 голосов
/ 10 февраля 2019

Я работаю с внедрением локали, и я могу вставить его в конструктор, мне было интересно, возможно ли внедрить его как свойство.Это приведет меня к моему следующему вопросу, могу ли я добавить это в простой модели.Я использую 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: undefined

В моей модели местоположения я хочу, чтобы модель знала, какую метку использовать, в идеале я хочу иметь возможность ввести 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;
  }

Git здесь https://github.com/ricardosaracino/class-transformer

...