AngularUI-Bootstrap Typeahead: группировка результатов

Я реализую typeahead с помощью AngularUI-Bootstrap. Мне нужно показать результаты, сгруппированные на основе некоторых значений, поступающих из базы данных. Вот пример сценария

В базе есть несколько пользователей, у каждого пользователя есть «Отдел». Одно имя пользователя может быть доступно в нескольких отделах.Конечный пользователь вводит имена для поиска пользователей из базы данных и извлекает список из списка заголовков. Поскольку одно имя пользователя может принадлежать нескольким отделам, необходимо указать имена пользователей, сгруппированные по разным отделам. Что-то вроде этого:Затем пользователь может выбрать желаемое имя пользователя и продолжить.

В соответствии сTypeahead документация присутствуетВотЯ не вижу никакой возможности удовлетворить мое требование.

Я пробовал этот обходной путь: всякий раз, когда формируется массив typeahead, я добавлял пользовательский отдел к элементу массива:

$scope.fetchUsers = function(val) {
        console.log("Entered fetchUsers function");
        return $http.get("http://localhost:8080/TestWeb/users", {
            params : {
                username : val
            }
        }).then(function(res) {
            console.log("Response:",res);
            var users = [];
            angular.forEach(res.data, function(item) {
                users.push(item.UserName + " - " + item.UserDepartment);
            });
            console.log("users=",users);
            return users;
        });
    };

Таким образом, по крайней мере, конечный пользователь видит отдел. Но когда я выбираю запись, выбранное значение является полным содержимым элемента массива. Ниже приведен пример скриншота для разработки:

HTML

Пользователи из локального сервиса
<pre>Model: {{userList | json}}</pre>
<input type="text" ng-model="userList" placeholder="Users loaded from local database" 
typeahead="username for username in fetchUsers($viewValue)" 
typeahead-loading="loadingUsers" class="form-control">
<i ng-show="loadingUsers" class="glyphicon glyphicon-refresh"></i>

Пользовательские типы в строке

Пользователь выбирает одну запись

Я хочу избежать отдела (в этом случае строка- Desc 4 ) когда пользователь выбирает запись.

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

Ответы на вопрос(2)

Ваш ответ на вопрос