Нет всплывающего окна с AngularJS и typeahead

#angularjs #typeahead

#angularjs #typeahead

Вопрос:

У меня проблема с директивой typeahead. Я пытаюсь получить данные из своих данных из своего сервиса через $ http.get. В выводе консоли я вижу, что мои данные поступают из сервиса, но я не получаю всплывающее окно результатов.

Вот мой код:

Html шаблон:

 <input type="text" class="form-control" placeholder="Kundensuche" ng-model="selectedCompany" typeahead="c for c in companies($viewValue)" typeahead-no-results="noResults" typeahead-min-length="3">                     

Обслуживание:

 var _search = function (route, id) {
        return $http.get(serviceBase   'api/'   route   '/search/'   id);        
    };

serviceHelperFactory.search = _search; 

Контроллер:

 $scope.companies = function (val) {
              var output = [];
              var promise = serviceHelper.search('companies', val);
              promise.then(function (result) {
                  result.data.forEach(function (company) {
                                  output.push(company.companyName);
                                  //output.push(company);
                  });
                  console.log(output);                  
              }, function (error) {
                  adminInvoiceService.serviceErrorMessage(error);
              });
              return output;
          } 

Спасибо!

Комментарии:

1. Какая у вас версия angularjs и версия ui-bootstrap? Ваш код работает после того, как я изменю ‘typeahead =»c для c в компаниях ($ viewValue)»‘ на ‘uib-typeahead =»c для c в компаниях ($ viewValue)»‘

Ответ №1:

Хорошо, я это исправил! Для всех с той же проблемой вот мое решение!

 $scope.companies = function (val) {
              return $http.get('http://localhost:5569/api/companies/search/' val).then(function (res) {
                  var companies = [];
                  console.log(companies);
                  res.data.forEach(function (item) {
                      companies.push(item);                      
                  });
                  console.log(companies);
                  return companies;
              });
          };