Как сделать ui-select-choices, чтобы принять во внимание, что находится в ng-модели ui-select? - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть компонент 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="", чтобы исключить то, что уже выбрано.

Какой подход лучше в этом случае?Или я не должен использовать ни один из них, но некоторые другие?

...