Установить значение по умолчанию для выбора нулевой опции
Согласно документации 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>
Тогда видимая опция отобразится соответственно... не нашли простого способа динамически установить "отключен".