首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于语言的更改languageService.getAll()数据不会更改

关于语言的更改languageService.getAll()数据不会更改
EN

Stack Overflow用户
提问于 2021-02-26 00:40:05
回答 1查看 36关注 0票数 0

我想要显示所有语言及其名称。

test.html

代码语言:javascript
复制
 <ul>
       <li *ngFor="let item of (allLangs$ | async)">
         <a (click)="changeLanguage(item.isocode)">
           <span>{{item.name}}</span>
         </a>
       </li>
     </ul>

component.ts

代码语言:javascript
复制
    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中的名称。

EN

回答 1

Stack Overflow用户

发布于 2021-02-26 01:41:41

要做到这一点,一种方法是在需要更新语言数据时显式地分派LoadLanguages操作:store.dispatch(new SiteContextActions.LoadLanguages())

另一种方法是添加一个元缩减程序来清除操作SiteContextActions.LANGUAGE_CHANGE的SiteContextState。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66372711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档