UI Bootstrap Typeahead не отображает значения, возвращаемые асинхронно

Я пытаюсь выполнить поиск автозаполнения, используя UI Bootstrap Typeahead, чтобы выбрать данные из базы данных.

Моя служба возвращает данные в моем ответе, но данные не указаны в компоненте.

Когда я ставлю точку останова в код компонента, список есть, и когда я продолжаю отлаживать, список отображается, но если он работает без точек останова, список не отображается.

HTML

  <input id="inputInstalation" 
         ng-model="profile.instalation" 
         typeahead-editable="false" 
         typeahead="installation as installation.name for installation in searchInstallation($viewValue)" 
         typeahead-input-formatter="formatLabel($model)" 
         ng-required="true">

Контроллер

$scope.searchInstallation = function(text){

    return $http.get('/api/installations/name/' + text).then(function(response){
        return response.data;
      });
  };

$scope.formatLabel = function(model){
    return model ? model.name : "";
  };

API NodeJS — БД Mongo

exports.findByName = function(req, res){
  var connection =  getConnection();
  var Installation = getInstallationModel(connection);

  Installation.find({name: new RegExp(req.params.name, "i")}, function (err, result) {
    connection.close();
    if(err) throw err;
    res.json(result);
  });
};

Ответ

[{ _id: 5525662b74100eb40f13ce00,
  name: 'test 2',
  description: 'Gdoc 02.02.00-00',
  __v: 0,
  services: 
   [ { name: 'Alfresco',
       context: '/alfresco',
       parameterURL: 'prmGdocServiceUrl',
       _id: 5525662b74100eb40f13ce03 },
     { name: 'ri-rest',
       context: '/iserver',
       parameterURL: 'prmUrlIntegrationServer',
       _id: 5525662b74100eb40f13ce02 },
     { name: 'ldap',
       parameterURL: 'prmLdapUrl',
       parameterUser: 'prmLdapPrincipal',
       parameterPassword: 'prmLdapPassword',
       _id: 5525662b74100eb40f13ce01 } ],
  tables: 
   [ { _id: 5525662b74100eb40f13ce06, name: 'esegsistema' },
     { _id: 5525662b74100eb40f13ce05, name: 'esegusuario' },
     { _id: 5525662b74100eb40f13ce04, name: 'XPTO' } ],
  parameters: 
   [ { name: 'prmUrlBaseServidorHTTP',
       systemCode: '314',
       _id: 5525662b74100eb40f13ce0e },
     { name: 'prmTamanhoMaximoArquivo',
       systemCode: '314',
       _id: 5525662b74100eb40f13ce0d },
     { name: 'prmGdocServiceUrl',
       systemCode: '314',
       _id: 5525662b74100eb40f13ce0c },
     { name: 'prmLdapUrl',
       systemCode: '314',
       _id: 5525662b74100eb40f13ce0b },
     { name: 'prmLdapPrincipal',
       systemCode: '314',
       _id: 5525662b74100eb40f13ce0a },
     { name: 'prmLdapPassword',
       systemCode: '314',
       _id: 5525662b74100eb40f13ce09 },
     { name: 'prmDomainSufix',
       systemCode: '314',
       _id: 5525662b74100eb40f13ce08 },
     { name: 'xxxxx',
       systemCode: '314',
       _id: 5525662b74100eb40f13ce07 } ] }]

person Guilherme Santos    schedule 10.04.2015    source источник
comment
у меня работает: plnkr.co/edit/F2kCcJ9W3srwNLseixZR?p=preview   -  person New Dev    schedule 11.04.2015
comment
Когда возврат является статическим, код работает хорошо, но когда запрос переходит в состояние покоя, веб-служба ( NodeJS ) не работает.   -  person Guilherme Santos    schedule 13.04.2015
comment
Между ними не должно быть никакой разницы, так как я доставляю результаты с помощью $timeout, что делает его асинхронным. Но в любом случае вот версия с HTTP: plnkr.co/edit/muFs7JF2gg2sL6XlOkub?p=preview   -  person New Dev    schedule 13.04.2015


Ответы (1)


Я нашел проблему, я использую https://github.com/McNull/angular-block-ui и конфликтует с компонентом.

Решение: я создал requestFilter из angular blockui, чтобы не блокировать запросы, отправленные компонентом в API.

person Guilherme Santos    schedule 13.04.2015