我想要显示所有语言及其名称。
test.html
<ul>
<li *ngFor="let item of (allLangs$ | async)">
<a (click)="changeLanguage(item.isocode)">
<span>{{item.name}}</span>
</a>
</li>
</ul>component.ts
export class CmsSiteContextComponent {
allLangs$: Observable<Language[]> = this.languageService.getAll();
activeLangString: string;
constructor(
protected languageService: LanguageService,
) {
this.languageService.getActive().subscribe((lng) => {
this.activeLangString = lng;
});
this.allLangs$.subscribe((allLangs) => {
console.log('allLangs ', allLangs);
});
}
public changeLanguage(key: string): void {
this.languageService.setActive(key);
}
}如果不重新加载,则不会更新languageService.getAll()`语言数据(名称、本地名)。
我想在不重新加载页面的情况下更改html中的名称。
发布于 2021-02-26 01:41:41
要做到这一点,一种方法是在需要更新语言数据时显式地分派LoadLanguages操作:store.dispatch(new SiteContextActions.LoadLanguages())。
另一种方法是添加一个元缩减程序来清除操作SiteContextActions.LANGUAGE_CHANGE的SiteContextState。
https://stackoverflow.com/questions/66372711
复制相似问题