如何使用AngularJS设置<select>的初始值?</select>

时间:2013-10-26 10:13:29

标签: angularjs

我在我的控制器中使用此代码:

$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列表中的值就是其中一个?

2 个答案:

答案 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