Reputation: 885
I'm having a Angular JS material drop down menu and items are loading from my controller. When user clicks an item , I'm storing it value to local storage. It works well. After selecting the value , I want to set that (local storage value) value as dropdown default value.
<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>
From my controller
ctrl.getLocalStorageItem = localStorage.getItem('selectLanguage')
ctrl.languageChange = function (key) {
if (typeof this.selectedLanguage != 'undefined'){
localStorage.setItem('selectLanguage', key);
$route.reload();
} }
Upvotes: 0
Views: 2097
Reputation: 5041
You have to set the value to the variable you bind in ng-model. In your case
$callcenterController.selectedLanguage
So:
Controller:
ctrl.selectedLanguage = localStorage.getItem('selectLanguage');
ctrl.languageChange = function () {
if(ctrl.selectedLanguage) {
localStorage.setItem('selectLanguage', ctrl.selectedLanguage);
}
}
View:
<md-select ng-model="$callcenterController.selectedLanguage" ng-change="$callcenterHomeController.languageChange()" >
...etc
</md-select>
Upvotes: 1