Javascript window.localStorage()设置语言首选项
我想做的是,当用户在我的网站上选择他们的语言偏好时,它将被存储,这样,如果他们刷新页面或返回,他们选择的语言仍然会在那里 我用Angular来做这件事,下面是我的代码:Javascript window.localStorage()设置语言首选项,javascript,angular,local-storage,angular-local-storage,Javascript,Angular,Local Storage,Angular Local Storage,我想做的是,当用户在我的网站上选择他们的语言偏好时,它将被存储,这样,如果他们刷新页面或返回,他们选择的语言仍然会在那里 我用Angular来做这件事,下面是我的代码: export class AppComponent implements OnInit { title: string = 'app'; currentLanguage: string; currentPage: string; @ViewChild('bottom') bottomSection: Elemen
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.setItem(this.currentLanguage, language);
因此,每次名为this.currentLanguage
的新变量都将存储在localstorage中
尝试此操作以存储项目:
localStorage.setItem('selectedLanguage', language);
要获取项目,请执行以下操作:
localStorage.getItem('selectedLanguage');
您是否在控制台中看到任何错误?不,我没有看到任何错误CalStorage.setItem('language',language);最有可能是您正在寻找的-您现在所做的基本上是调用changeLanguage('en'),然后调用localStorage.setItem('en','en'),这毫无意义。我已经厌倦了这一点,但它没有解决问题。你认为我调用函数的位置对吗?