Отключить повторный выбор, когда модель была выбрана в Angularjs-selected - PullRequest
0 голосов
/ 14 апреля 2019

Мне нужна помощь по следующему сценарию:

Я использую раскрывающиеся списки в таблице. Каждый ряд имеет свой выпадающий список. Теперь есть 2 варианта для изменения выбора:

  1. Нажмите на значок отмены выбора ('x') (работает нормально - через ng-change).

  2. Откройте раскрывающийся список, выберите другое значение из списка. Переопределить предыдущее значение (хотя ng-change срабатывает, у меня нет возможности узнать, является ли оно новым значением или значением переопределения).

Я хочу отключить второе поведение. Можно ли «сказать» выбранному, что после того, как значение было выбрано, единственный способ повторно выбрать новое значение - это нажать «x»? Например, после выбора значения отключите раскрывающийся список, скройте значок стрелки, но оставьте значок отмены выбора «x» активным?

<select chosen
                            allow-single-deselect="true"
                            placeholder-text-single="'Select'
                            ng-model="row.userSelection"
                            ng-options="field as field.name for field in vm.fields">
                        <option value=""></option>
                    </select>

Спасибо.

1 Ответ

0 голосов
/ 14 апреля 2019

Добавление ng-disabled = "$ ctrl.model" отключит выбор, пока "x" не очистит $ ctrl.model.После очистки выбор будет включен, и новый выбор может быть сделан.

Единственное, о чем я могу подумать после быстрого просмотра, - это преобразовать из ng-options в и использовать ng-disabled на фактическом элементе option.В документации говорится, что вы можете скрыть отключенные опции, поэтому, если, например, вы должны были выбрать OPTION1 и OPTION [2-4], они будут удалены из списка.

Я нашел поршень с версией 1.0, но он не работает.Если параметры отключены, они по-прежнему отображаются в списке, хотя при их выборе они становятся неопределенными.Возможно, обновлена ​​более новая версия, чтобы фактически удалить их.

...