2017-11-10 28 views
2

私は、ユーザーが自分のサイトの言語設定を選択したときにその言語設定が保存されるようにしているので、ページを更新するか戻ってきた場合に、選択された言語は依然として存在します。window.localStorage()言語設定を設定する

私は角度でこれをやって、そしてここに私のコードですよ:

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が動作し得るように見える傾けます。私は初心者なので、答えは明白かもしれませんが、誰かが私が間違っていることや、言語設定を保存する方法を私に説明することはできますか?あなたはkeyvalueペアを使用する必要がありますlocalStorageを使用するには

+0

は、コンソールにエラーを見ている:

localStorage.setItem('selectedLanguage', language); 

は、アイテムを取得するには? – brk

+0

いいえ、私はエラーが表示されていません – KatherineMichelle

+0

localStorage.setItem( 'language'、language);あなたが探しているものより多くの可能性が高いです - あなたが今やっていることは、基本的にchangeLanguage( 'en')を呼び出してから、localStorage.setItem( 'en'、 'en')を呼び出すことです。 – yusijs

答えて

2

この行のコードに問題があります。このため

localStorage.setItem(this.currentLanguage, language); 

this.currentLanguageと呼ばれる新しい変数がのlocalStorageに保存されますたびに。

ストアアイテムにこれを試してみてください:

localStorage.getItem('selectedLanguage'); 
+0

これは疲れましたが、問題は解決していません。あなたは正しい場所で機能を呼んでいますか? – KatherineMichelle

関連する問題