在构造函数中给出值后未定义的变量?

时间:2019-06-10 10:29:32

标签: angular typescript

我在访问在构造函数this.currentLang中使用的变量时遇到了麻烦,因为您可以看到它采用了值,并且该值也在构造函数之外,但是当流程进入{{1}时}函数/方法是displayIndustries,在此变量的范围内有任何问题,原因是我尝试使用undefined,现在仍然使用字符串boolean

undefined

仅编辑注释中的代码库,但仍然无法正常工作。

1 个答案:

答案 0 :(得分:0)

您没有在构造函数中使用变量。您正在预订回调中使用它,该回调在构造函数调用之后/期间被异步调用。为防止未定义currentLang,可以对其进行初始化。

  currentLang = ''

  constructor(
       private fb: FormBuilder, 
       private langService: LangService ,
       private translate: TranslateService
  ) {

    this.langService.currentLang.subscribe((lang) => {
      this.currentLang = lang;
      this.showCurrentLang = this.currentLang === 'en';
      if (this.AfterDisplayIndustries) {
        this.displayIndustries();
      }
    });
  }


  displayIndustries (industry?: IIndustry) {
    this.AfterDisplayIndustries = true;
    return (this.currentLang === 'en' && industry) ? industry.name : industry.nameCZ;
  } 

(我也简化了您的代码)