2013-10-26 4 views
1

Я использую этот код в мой контроллер:Как установить начальное значение <select> с помощью 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> 

Вместо того, чтобы использовать опцию "Select Type Page". Как я могу сделать так, чтобы мой код по умолчанию менял значение в локальном хранилище, или если там нет ни одного из значений, которые у меня есть в моем списке options.pageTypes?

ответ

1

Есть свой localStorageService обратный нуль, если нет ничего хранится. Если она существует, есть служба возвращает целое число

Тогда в контроллере:

/* assume want first item in array */ 
$scope.option.selectedPageType = localStorageService.get('selectedPageType') || $scope.option.pageTypes[0].id 
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/

Смежные вопросы