Результаты Angular Typeahead показывают undefined

Я изучал Angular и пытался реализовать его в макете. Когда я пытался реализовать Angular typeahead, результаты typeahead отображаются как undefined. Может ли кто-нибудь подсказать мне, где я ошибаюсь? Фрагмент кода html,

 <input type="text" id="search" ng-model = "selectedEnterprise" class="form-control form-design input-md enable collapse" placeholder="search for an enterprise" uib-typeahead = "enterprise.name as vm.enterprises.name for enterprise in vm.enterprises | filter:$viewValue | limitTo : 3 ">

Фрагмент кода контроллера

 $http.get(path + '/enterprise/all/' + num)
                    .then(function success(response) {
                        vm.enterprises = response.data;
                        temp = vm.enterprises;
                        console.log(vm.enterprises);
                    }, function error(response) {
                        console.log(response);
                    });

Я использую фреймворк MongoDB и NodeJS для Backend.


person akila arasan    schedule 03.10.2016    source источник
comment
Вместо enterprise.name как vm.enterprises.name должно быть имя как enterprise.name   -  person Ravi Teja    schedule 03.10.2016


Ответы (2)


Измените свой код с вводом текста

От

<input type="text" id="search" ng-model = "selectedEnterprise" class="form-control form-design input-md enable collapse" placeholder="search for an enterprise" uib-typeahead = "enterprise.name as vm.enterprises.name for enterprise in vm.enterprises | filter:$viewValue | limitTo : 3 ">

To

<input type="text" id="search" ng-model = "selectedEnterprise" class="form-control form-design input-md enable collapse" placeholder="search for an enterprise" uib-typeahead = "enterprise.name as enterprise.name for enterprise in vm.enterprises | filter:$viewValue | limitTo : 3 ">

В начале мы создаем эталонный объект предприятия для vm.enterprises (источник данных), и из этого эталонного объекта мы извлекаем переменную имени и просим ее назначить то же самое для ng-model

uib-typeahead = "enterprise.name as enterprise.name for enterprise in vm.enterprises
person ngCoder    schedule 03.10.2016
comment
Извините за использование старого потока, но можем ли мы иметь функцию множественного выбора на uib-typeahead - person user3767641; 10.12.2019

Вместо

uib-typeahead = "enterprise.name as vm.enterprises.name for enterprise in vm.enterprises | filter:$viewValue | limitTo : 3

Выражение должно быть таким

uib-typeahead = "name as enterprise.name for enterprise in vm.enterprises | filter:$viewValue | limitTo : 3

Вы должны ссылаться на конкретный экземпляр enterprise.name, а не на все экземпляры vm.enterprises.name

person Ravi Teja    schedule 03.10.2016