0
import {TranslateService, LangChangeEvent} from "@ngx-translate/core";
class ExportLanguageFun {
    public currentLang : string;
    constructor(private translate : TranslateService) {  
    }
    public static setValue(): string {
        this.translate
        .onLangChange
    .subscribe(lang => {
     this.currentLang = lang;
    })
    return this.currentLang;
        }
    }

导出让 exportLanguage = ExportLanguageFun.setValue(); //错误:“typeof ExportLanguageFun”类型上不存在属性“setValue”。

预期输出 console.log(let+"someValue");

4

1 回答 1

0

你应该在这里重新考虑你的结构。你想要在这里返回的是来自 observable 内部的 lang。你需要重组你在这里所做的事情。

public static setValue(): string {
    return this.translate.onLangChange
}

然后,当您调用该函数时,您可以订阅它并在那里做一些事情。

this.setValue().subscribe(lang => {
  this.currentLang = lang;
  // do something else with it
})

通过订阅,每次有新值时,函数都会运行。与其尝试返回值,不如在每次更改时对其进行处理,无论您在哪里订阅它。

于 2017-11-15T21:01:24.457 回答