window.localStorage()来设置语言首选项

时间:2017-11-10 09:31:48

标签: javascript angular local-storage angular-local-storage

我正在努力使用当用户在我的网站上选择他们的语言偏好时,它将被存储,这样如果他们要刷新页面或回来,他们选择的语言仍然会存在。

我在Angular中这样做,这是我的代码:

export class AppComponent implements OnInit {
  title: string = 'app';
  currentLanguage: string;
  currentPage: string;
  @ViewChild('bottom') bottomSection: ElementRef;
  @ViewChild('top') topSection: ElementRef;

  constructor(private global: GlobalProvider, private translate: TranslateService, private scrollService: ScrollToService, private elementRef: ElementRef, private route: ActivatedRoute, private router: Router) {
    translate.setDefaultLang('en');
    this.changeLanguage('en');
    this.currentLanguage = localStorage.getItem(this.currentLanguage);
  } 

  changeLanguage(language: string) {
    this.translate.use(language);
    this.currentLanguage = language;
    localStorage.setItem(this.currentLanguage, language);
  } 

页面上的语言变化很好,但我似乎无法使localStorage正常工作。我是一个初学者,所以答案可能很明显,但任何人都可以向我解释我做错了什么以及如何将语言偏好存储起来?

1 个答案:

答案 0 :(得分:1)

要使用 localStorage ,您应该使用key value对。

此行中代码的问题。

localStorage.setItem(this.currentLanguage, language);

因此,每次将名为this.currentLanguage的新变量存储在localstorage中时都会这样。

尝试此操作来存储项目:

localStorage.setItem('selectedLanguage', language);

获取项目:

localStorage.getItem('selectedLanguage');