2017-04-24 52 views
0

我需要在我的下拉菜单中存储ngchange以保存到localstorage,因此当有人关闭应用时,仍然保存更改。现在一切正常,但当应用程序重新加载时,用户必须再次进行选择。我如何使它起作用?如何在本地存储中保存ngChange

下面是HTML:

<select ng-model="item" ng-options="category.title for category in categories | filter: 234 | filter: {title: '!Federal'} " 
ng-change="changedValue(item)" style="text-align: left;"> 
    <option value="" selected="selected">Choose a State</option> 
</select> 

这里是JavaScript:

$scope.changedValue = function(item) { 
$scope.categories.push(item.id); 


console.log(item.id); 
$localStorage.id = item.id; 
console.log($scope.categories); 
$scope.categories = $localStorage.categories; 


$http.get('http://mywebsite.com/api/get_category_posts/?id=' + item.id).then(
    function(data){ 


    $scope.category_posts = data.data.posts; 

回答

2

在localStorage的设置项:

localStorage.setItem('selectedOption', JSON.stringify(item)); 

从localStorage的获取一个项目:

var lastSelected = JSON.parse(localStorage.getItem('selectedOption')); 

DEMO

var myApp = angular.module('myApp', []); 
 

 
myApp.controller("MyCtrl", function($scope) { 
 
    $scope.categories = [ 
 
    { 
 
    "title":"uttarakhand", 
 
    "name":"uttarakhand" 
 
    }, 
 
    { 
 
    "title":"himachal", 
 
    "name":"himachal" 
 
    }, 
 
    { 
 
    "title":"telangana", 
 
    "name":"telangana" 
 
    } 
 
    ]; 
 
    
 
    var lastSelected = JSON.parse(localStorage.getItem('selectedOption')); 
 
    
 
    if(lastSelected) { 
 
    $scope.item = lastSelected; 
 
    } 
 
    
 
    $scope.changedValue = function(item) { 
 
    localStorage.setItem('selectedOption', JSON.stringify(item)); 
 
    }; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="MyCtrl"> 
 
<select ng-model="item" ng-options="category.title for category in categories" 
 
ng-change="changedValue(item)" style="text-align: left;"> 
 
    <option value="" selected="selected">Choose a State</option> 
 
</select> 
 
</div>

1

如果你想存储在localStorage的东西,那么你可以做到这一点,如下。它应该有一个关键和价值。

localStorage.setItem('category', 'PRODUCTS'); 

如果您想得到相同的值,请使用该键。根据你的情况,在需要的地方,使用以下行来获取数据回

localStorage.getItem('category'); 
2

可以在本地存储数据存储为

localStorage.setItem('ID', item.id); 

所以,你可以重装为

后得到的数据
$scope.categories = localStorage.getItem('ID');