2015-06-23 1 views
1

У меня есть элемент <select>, заполненный допустимыми значениями через ng-options и привязанный к модели с ng-model. Возможно, для модели установлено значение, которое неприемлемо. (Это было приемлемо, но больше не было.) В этом случае AngularJS отображает <select>, как если бы у него был выбран пустой элемент.Отображать значение, не выбранное в списке, с помощью опций ng

Есть ли способ визуализировать выбранное значение, даже если оно не указано в ng-options? Я знаю, что могу установить по умолчанию <option> внутри <select>. Это лучше, чем отображение пустого элемента, но это статическая строка. Я хотел бы иметь значение значение.

ответ

1

Интересная проблема. Я думаю, что вы сможете достичь этого с помощью комбинации директивы ngInit, чтобы установить начальное значение (его можно упустить из списка разрешенных опций) и ngShow, чтобы скрыть его, как только будет выбран правильный параметр.

Что-то вроде этого:

<select 
    ng-init="preselected = selected" 
    ng-change="preselected = null" 
    ng-model="selected" 
    ng-options="item.id as item.name for item in items"> 
    <option value="" ng-show="preselected">{{preselected}}</option> 
</select> 

Демо:http://plnkr.co/edit/lUTR0pHDPecU0OUUwjzt?p=preview

+0

Очень здорово, спасибо! –

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