【问题标题】:How to set local storage value to selected value in drop down Angular JS?如何在下拉Angular JS中将本地存储值设置为选定值?
【发布时间】:2018-06-19 15:52:50
【问题描述】:

我有一个 Angular JS 材质下拉菜单,并且正在从我的控制器加载项目。当用户单击一个项目时,我将其值存储到本地存储中。它运作良好。选择值后,我想将该(本地存储值)值设置为下拉默认值。

  <div flex>
    <md-select ng-model="$callcenterController.selectedLanguage" ng-selected="$callcenterController.getLocalStorageItem" ng-change="$callcenterHomeController.languageChange($callcenterController.selectedLanguage.name)"  placeholder="{{$callcenterController.selectLanguageLabel}}" >
        <md-option ng-value="languages" ng-repeat="languages in $callcenterHomeController.languageList"></md-select-label>  {{ languages.name }}</md-option>
  </md-select>    

来自我的控制器

ctrl.getLocalStorageItem = localStorage.getItem('selectLanguage')

ctrl.languageChange = function (key) {
if (typeof this.selectedLanguage != 'undefined'){

  localStorage.setItem('selectLanguage', key);

  $route.reload();

}  }

【问题讨论】:

  • 使用要在加载时分配本地存储值的模型值,如 ctrl.defaultLanguage = localStorage.getItem('selectLanguage'); 并在模板中使用它 ng-model="$callcenterController.defaultLanguage".

标签: angularjs local-storage angular-material


【解决方案1】:

您必须将值设置为您在 ng-model 中绑定的变量。你的情况

$callcenterController.selectedLanguage

所以:

Controller:

ctrl.selectedLanguage = localStorage.getItem('selectLanguage');

ctrl.languageChange = function () {
  if(ctrl.selectedLanguage) {
    localStorage.setItem('selectLanguage', ctrl.selectedLanguage);
  }
}

查看:

<md-select ng-model="$callcenterController.selectedLanguage"  ng-change="$callcenterHomeController.languageChange()" >
...etc
  </md-select>    

【讨论】:

  • 当它关闭浏览器并检查时,它没有设置值。 route.reload 也不起作用,更改功能也不起作用
  • @yBrodsky- 刷新下拉选择值设置为空白后。但它存储在本地存储中。请帮忙
  • 你的控制器正在重新加载吗?
猜你喜欢
  • 2023-03-13
  • 1970-01-01
  • 2023-02-14
  • 1970-01-01
  • 2014-12-05
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
  • 2016-10-24
相关资源
最近更新 更多