Установить значение по умолчанию для выбора нулевой опции

Согласно документации Angular, вы можете создать нулевую опцию, которая не является частью вашей модели. Это позволяет вам иметь описательный вариант. IE в своем примере у них есть -- choose color --, Как я могу сделать нулевую опцию опцией по умолчанию? Я хочу, чтобы пользователь видел эту описательную нулевую опцию при первой загрузке страницы.

Бонусные баллы, если вы также можете сказать мне, как отключить нулевую опцию через angular.

2 ответа

Решение

Значение устанавливается равным нулю автоматически. Но если вы получите данные от REST для примера, и они будут установлены в какое-то значение - вы можете добавить ng-init на ваш select тег. А для отключения нулевой опции после выбора какого-либо значения - нужно добавить ng-disabled на ваш option тег.

<select ng-model="model" ng-options="item for item in items" ng-init="model = null">
  <option value="" ng-disabled="!!model">--Select option--</option>
</select>

И в контроллере:

.controller('MainCtrl', function($scope) {
  $scope.model = 'First';
  $scope.items = ['First', 'Second', 'Third'];
});

Демо: http://plnkr.co/edit/esoX26I9bESE59yneOvv

Просто используйте ng-if, чтобы полностью удалить его, когда у него есть выбор. Лучший вариант из моего опыта.

<select name="objectSelector"
    ng-model="selectedObject"
    ng-options="obj for obj in Objects" required>
    <option value="" ng-if="!selectedObject">--- Select Object ---</option>
</select>

Если вы действительно, действительно должны показать "--- Выбрать объект ---" после того, как выбор уже сделан, то вы можете просто вставить второй

<option value="" ng-if="!!selectedObject" disabled>--- Select Object ---</option>

Тогда видимая опция отобразится соответственно... не нашли простого способа динамически установить "отключен".

Другие вопросы по тегам