我在我的角应用程序中使用ngx-translate。我正在动态地将数组值更改为键并从es.josn文件中动态获取转换值。当应用程序第一次加载时它工作正常。但问题是当我改变路线并再次回到这条路线时 以下工作正常意味着我正在获取数据。
this.assetOnboardingService.getAssetType().subscribe(
(data) => {
});
但是在订阅内部没有工作,意味着translate.onLangChange没有触发任何事件:
this.langChange = this.translate.onLangChange.subscribe((event:LangChangeEvent) => {
let avilableaAssetType:AssetType[] = [];
if (data) {
data.forEach(assettype => {
let model = new AssetType(assettype.name, assettype.status);
avilableaAssetType.push(model);
});
}
avilableaAssetType.forEach(data => {
let name=this.sentenceToKey(data.name);
this.translate.get(name).subscribe(res => {
this.avilableaAssetType.push({
name: res,
status:data.status});
});
});
});
完整的代码在这里:
this.assetOnboardingService.getAssetType().subscribe(
(data) => {
console.log("after route chnage it is working");
this.langChange = this.translate.onLangChange.subscribe((event:LangChangeEvent) => {
console.log("after route chnage it is NOT working");
let avilableaAssetType:AssetType[] = [];
if (data) {
data.forEach(assettype => {
let model = new AssetType(assettype.name, assettype.status);
avilableaAssetType.push(model);
});
}
avilableaAssetType.forEach(data => {
let name=this.sentenceToKey(data.name);
this.translate.get(name).subscribe(res => {
this.avilableaAssetType.push({
name: res,
status:data.status});
});
});
});
}
);