У меня есть компонент ui-select:
<ui-select multiple ng-model="question.questionConsider.list" theme="bootstrap"
uis-open-close="$ctrl.updateList()">
<ui-select-match>
{{$item.FIO}}
</ui-select-match>
<ui-select-choices repeat="item in $ctrl.someList track by item.FIO">
{{item.FIO}}
</ui-select-choices>
</ui-select>
и контроллер:
class Controller {
static $inject=[...];
private questions = [];
private someList = [];
...
constructor($scope, $state, ....){...}
$onInit() {
this.questions = {
questionConsider: { list: [...] }
}; // data from service goes here
this.someList = [...]; // data from service goes here
}
updateList(){
//some logic
}
}
Я вижу, что если я использую компонент без данных в ng-модели (я 'm создание формы) этот выбор работает хорошо: если я выбираю элемент, он скрывается из списка вариантов выбора;
Но если у меня есть некоторые элементы в ng-модели (не выбранные на этот раз, но загруженные из сервиса: представьте, что яредактировать заполненную форму) мой список не учитывает то, что уже есть в ng-модели.В этом случае я могу выбрать какой-то предмет дважды, что не является правильным.
Как я могу сделать свой список выбора, чтобы увидеть, что в ng-модели?У меня есть пара идей: использовать некоторый фильтр в атрибуте repeat
и использовать какой-то метод, который будет вычислять списки и изменять список вариантов в ui-select-choices repeat=""
, чтобы исключить то, что уже выбрано.
Какой подход лучше в этом случае?Или я не должен использовать ни один из них, но некоторые другие?