angular - 如何从本地存储中获取设置选择值?
问题描述
我有以下选择组件:
<label>
{{ "HOME.SELECT" | translate }}
<select #langSelect (change)="translate.use(langSelect.value)" (change)='onOptionsSelected($event)'>
<option *ngFor="let lang of translate.getLangs()" [value]="lang" [selected]="??">
{{ lang }}</option>
</select>
</label>
在构造函数中,选择的语言被保存到 localstorage 中,如下所示:
constructor(public translate: TranslateService) {
translate.addLangs(["en-US", "fr-FR", "de-DE"]);
if (localStorage.getItem('language')) {
translate.setDefaultLang(localStorage.getItem('language'));
translate.use(localStorage.getItem('language'));
} else {
translate.setDefaultLang('en');
translate.use('en');
localStorage.setItem("language", "en");
}
}
如何根据存储在本地存储中的值设置选定的索引?
解决方案
Add 'value' parameter to select and pass variable to it like below. Assign the value of variable to localstorage value. Assign the same variable to 'selected'.
Updated your code below:
<pre>
<label>
{{ "HOME.SELECT" | translate }}
<select #langSelect (change)="translate.use(langSelect.value)" (change)='onOptionsSelected($event)' value="localStorageValueVariable">
<option *ngFor="let lang of translate.getLangs()" [value]="lang" [selected]="localStorageValueVariable">
{{ lang }}</option>
</select>
</label>
</pre>
推荐阅读
- python - 实时人脸识别
- java - 从 java 运行 shell 脚本并捕获返回值
- c++ - -vec.rbegin 在我的二进制搜索代码中的含义?
- elasticsearch - Elasticsearch 按列值查找重复文档
- mysql - 如何:数据库布局 MySQL
- c - 将用户输入的值存储到C中的字符指针?
- android - 带有动态复选框的 ScrollView 不滚动
- java - 符号在模块“java.xml”中声明,它不导出包“com.sun.org.apache.xpath.internal.operations”
- php - Laravel:在 Laravel 中连接表并在其他表上循环
- python - 部分基于头对头结果对表格进行排序