1
<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恢復表格

我可以存儲它使用 localStorage.setItem('search', JSON.stringify(cleanedParameters));

我可以訪問存儲與 JSON.parse(localStorage.getItem("search"));

但我不知道我怎麼會在頁面刷新恢復。是否有一些我可以使用的指令功能或示例?我無法找到與我的問題類似的東西。

+0

爲什麼這一個不工作? 'localStorage.getItem(「search」)' – Sampath

+0

我可以訪問它。但我不知道如何將它放到範圍中,並在我的屏幕上生成它,因此所有複選框都被「檢查」。我需要把它放在某種循環中... – RaV

+0

是你存儲數據的數組還是什麼類型? – Sampath

回答

0

我發現我可以直接將這個直接注入到$範圍內,沒有太多的努力。該解決方案非常有效:$scope.searchParameters=JSON.parse(localStorage.getItem("search"));

我是想通過自己來解析整個事情,但它是不值得的努力:)

隨着$scope.$watch('searchParameters', function (newValue, oldValue)我檢查,如果元素已更改,我在localStorage的更新。

0

我使用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/

+0

如果您直接將其注入到範圍,它會在屏幕上顯示更改?我試圖把整個東西放到'$ scope.searchParameters = JSON.parse(localStorage.getItem(「search」));'但它並沒有真正起作用。如果本地存儲中存在的條件爲真,我只需要檢查數組中的某些框。但不知道如何去做。 – RaV

+0

是的,看看例子 – Ozrix

1

您可以嘗試如圖below.Just創建一個數組並推值到that.Then你希望通過一個循環,你可以訪問數組值。

var a = []; 
a.push(JSON.parse(localStorage.getItem('search')));