我创建了以下内容:
$scope.option.questionOrderBy = [
{ label: 'PId', key: ['problemId', 'QuestionId'] },
{ label: 'QId', key: 'questionId' },
{ label: 'Modified By', key: 'modifiedBy' },
{ label: 'Modified Date', key: 'modified' },
{ label: 'Status', key: 'questionStatusId' },
{ label: 'Title', key: 'title' }
];
并在此处使用:
<select
data-ng-model="option.selectedQuestionSort"
data-ng-options="o.label for o in option.questionOrderBy">
<option style="display: none" value="">Select Sort Order</option>
</select>
并在我的HTML中:
data-ng-repeat="row in grid.data | orderBy:option.selectedQuestion.key">
这有效,但我想使用本地存储来记住排序的价值。
当我尝试存储“option.selectedQuestionSort”时,这是一个数组!
有没有办法可以更改上面的内容,以便我可以在localstorage 中存储值,而不是为option.selectedQuestionSort存储数组。然后,当我的代码启动时 可以获得值并让select显示正确的选择吗?
请注意,这是我存储在本地存储中的代码:
$scope.$watch('option.selectedQuestionSort', function () {
if ($scope.option.selectedQuestionSort != null ) {
localStorageService.add('selectedQuestionSort', $scope.option.selectedQuestionSort);
}
})
问题是$ scope.option.selectedQuestionSort是一个数组,所以我认为我不能正确存储。
答案 0 :(得分:1)
在存储数据时使用JSON.stringify(object)
(适用于对象和数组,但对于带有循环引用的项可能会失败,这不是这种情况)。
当您想要获取数据时,需要将其转换回对象(或数组)格式,使用返回对象的JSON.parse(string)
。
因此,您的localStorage服务应该是:
localStorageService.add('selectedQuestionSort', JSON.stringify($scope.option.selectedQuestionSort));
当你拿出来的时候:
selectedOption = JSON.parse(localStorageService.get('selectedQuestionSort'));