отключить один или несколько элементов в списке повторов в пользовательском интерфейсе

Мне нужно отключить одну или несколько опций в ui-select repeat

Вот массив, который я хочу повторить

$scope.list = ['item1', 'item2', 'item3', 'item4']

и вот функция выбора

<ui-select ng-model="item"
           on-select="changeItem()"
           ng-disabled="isReadOnly()" required>

    <ui-select-match class="ui-select-match">
        <span ng-bind="$select.selected"></span>
    </ui-select-match>
    <ui-select-choices class="ui-select-choices"
                       repeat="item in list">
        <div class="row">
            <div class="col-md-12">
                <span ng-bind="item"></span>
            </div>
        </div>
    </ui-select-choices>
</ui-select>

И например я хочу отключить item2 и item4

Как я могу это реализовать?


person Andrii Blinov    schedule 10.07.2017    source источник


Ответы (1)


Если вы хотите отключить некоторые параметры, вы можете использовать ui-disable-choice вместе с атрибутом ui-select-choices передать выражение для проверки.

В вашем случае должно работать что-то вроде ui-disable-choice="item == 'item2' || item == 'item4'".

person Stanislav Kvitash    schedule 10.07.2017
comment
Эта опция не работает(( Возникает эта ошибка: TypeError: Невозможно создать свойство '_uiSelectChoiceDisabled' в строке 'item1' - person Andrii Blinov; 11.07.2017
comment
@AndriiBlinov Это проблема старых версий ui-select, и похоже, что она была исправлена ​​в последних версиях. Проблема заключалась в том, что результат выражения был сохранен как свойство элемента, например item._uiSelectChoiceDisabled = isDisabled;, поэтому вы получаете указанную ошибку. Вы можете попробовать обновить ui-select или использовать список элементов, например $scope.list = [{value : 'item1'}, {value : 'item2'}, {value : 'item3'}, {value : 'item4'}], а затем использовать его в представлении, например repeat="item.val as item in list" ui-disable-choice="item.val == 'item2' || item.val == 'item4'". - person Stanislav Kvitash; 11.07.2017
comment
ой. Мне жаль. Я забыл ответить, да, это сработало, я использовал объект. Спасибо) - person Andrii Blinov; 12.07.2017
comment
@AndriiBlinov рад, что тебе помогло! Не могли бы вы пометить ответ как принятый в этом случае? - person Stanislav Kvitash; 12.07.2017