0

У меня есть тип UI-Bootstrap, но когда данные получены, выпадающее меню не отображается.UIB Typehead не показывает выпадающее меню

$scope.obtainUsers = function (valor) { 
     console.log(valor) 

      $http({ 
       method: "POST", 
       url: "http://localhost:3000/obtainUsers", 
       params: {"valor": valor} 
      }).then(function successCallback(response){ 
       console.log(response.data); 

       return response.data; 

      }, function errorCallback(error){ 
       alert("ERROR") 
      }) 
    } 

И HTML

    <input type="text" ng-model="selectedValue" uib-typeahead="userName as userName.userName for userName in obtainUsers($viewValue)" typeahead-loading="loadingUsers" typeahead-no-results="noResults" class="form-control"> 
        <i ng-show="loadingUsers" class="glyphicon glyphicon-refresh"></i> 
        <div ng-show="noResults"> 
         <i class="glyphicon glyphicon-remove"></i> No Results Found 
        </div> 

Я использую же синтаксис на ng-options и она работает хорошо, но не на typehead.

EDIT: Ах, конечно, HTTP получить ARRAY подобное [{имя_пользователя: Педро}, {имя_пользователя: Мария}, ...]

ответ

1

receUsers должны вернуть обещание. Попробуйте следующее:

$scope.obtainUsers = function (valor) { 
    console.log(valor) 

    return $http({ 
... 
0

Хорошо я наконец нашел ответ, я пропускаю ВОЗВРАТ за $ HTTP

HTML:

uib-typeahead="nombreUsuario.nombreUsuario for nombreUsuario in obtenerUsuarios($viewValue)" 

JS:

$scope.obtenerUsuarios = function (valor) { 
     return $http({ 
       method: "POST", 
       url: "http://localhost:3000/obtenerUsuarios", 
       params: {"valor": valor} 
      }).then(function successCallback(response){ 
       return response.data; 
      }, function errorCallback(error){ 
       alert("No se han podido enviar los datos") 
      }) 
    }