我在我的控制器中使用此代码:
$scope.$watch('option.selectedPageType', function () {
if ($scope.isNumber($scope.option.selectedPageType)) {
localStorageService.add('selectedPageType', $scope.option.selectedPageType);
}
})
getPageTypes: function ($scope) {
$scope.option.pageTypes = [
{ id: 0, type: 'Edit Basic' },
{ id: 1, type: 'Edit Standard' },
{ id: 2, type: 'Report' }
];
$scope.option.selectedPageType = parseInt(localStorageService.get('selectedPageType'));
},
并在我的HTML中:
<select data-ng-model="option.selectedPageType"
data-ng-options="item.id as item.type for item in option.pageTypes">
<option style="display: none" value="">Select Page Type</option>
</select>
而不是使用“选择页面类型”选项。我该怎么做才能使我的代码默认为本地存储中的值,或者如果那里没有任何内容,那么我的option.pageTypes列表中的值就是其中一个?
答案 0 :(得分:1)
尝试使用ng-init
上的<select ...>
:
<select data-ng-model="option.selectedPageType"
data-ng-options="item.id as item.type for item in option.pageTypes"
data-ng-init="option.selectedPageType=DEFAULT_VALUE">
看到这个小提琴:http://jsfiddle.net/CaeUs/5/
答案 1 :(得分:1)
如果没有存储任何内容,请让localStorageService
返回null。如果确实存在,请让服务返回整数
然后在控制器中:
/* assume want first item in array */
$scope.option.selectedPageType = localStorageService.get('selectedPageType') || $scope.option.pageTypes[0].id