<div ng-repeat="filterSection in filterSections">
<h4>{{ filterSection.title }}</h4>
<div class="checkbox" ng-click="loaderStart()" ng-if="filterSection.control == 'checkbox'" ng-repeat="option in filterSection.options">
<label>
<input type="checkbox" ng-model="searchParameters[filterSection.key][option.key]" value="{{ option.key }}" checked><span></span> {{ option.value }}
</label>
</div>
</div>
我可以用 $scope.searchParameters
.
我可以存储它 localStorage.setItem('search', JSON.stringify(cleanedParameters));
我可以使用 JSON.parse(localStorage.getItem("search"));
但是我不知道如何在页面刷新时恢复它。是否有一些我可以使用的指令函数或示例?我真的找不到与我的问题类似的东西。
您可以使用 angularJs 的 LocalStorageService 模块。
有关更多详细信息,请查看此链接 https://www.npmjs.com/package/angular-local-storage
您可以尝试如下所示。只需创建一个数组并将值推入其中即可。然后,您可以通过循环根据需要访问该数组值。
var a = [];
a.push(JSON.parse(localStorage.getItem('search')));
我正在使用ngStorage(抽象掉所有JSON解析的东西) - http://ngmodules.org/modules/ngStorage
然后在任何地方(在我的控制器、指令、服务中),我注入$localStorage
提供程序,并将存储加载到$scope
中:
app.controller("FooCtrl", ["$scope", "$localStorage", function($scope, $localStorage){
$scope.storageStuff = $localStorage.somethingSavedInStorage;
}]);
编辑:http://jsfiddle.net/Lvc0u55v/2997/
我发现我可以毫不费力地将其直接注入$scope中。此解决方案工作正常:$scope.searchParameters=JSON.parse(localStorage.getItem("search"));
我试图自己解析整个事情,但这不值得付出努力:)
有了$scope.$watch('searchParameters', function (newValue, oldValue)
我检查元素是否已更改,并在本地存储中更新它。