Search code examples
angularjsangular-uiangular-ui-typeahead

UI Bootstrap Typeahead is not displaying the values returned async


I am trying to do an autocomplete search using UI Bootstrap Typeahead to select a data from a database.

My service returns data in my response, but data are not listed in the component.

When I put a breakpoint in the component code , the list is there and when I continue to debug the list is displayed, but if it runs without breakpoints , the list is not displayed.

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">

Controller

$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 - DB 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);
  });
};

Response

[{ _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 } ] }]

Solution

  • I found the problem, I'm using the https://github.com/McNull/angular-block-ui and it conflicts with the component.

    Solution : I created a requestFilter from angular blockui to don't block requests sent the component to API .