UI Bootstrap Typeahead not returning async values

隐身守侯 提交于 2020-01-03 05:12:17

问题


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

I have set up an example database with 4 categories, the final one will contain more than a thousand categories.

When I start typing, the search results return 4 rows (so something must be working, because I tried to change the number of rows in the DB and the search result mirrors the total number of rows) but with no value. However, it doesn't matter what I write so it doesn't seem to be matching.

HTML

<input class="form-control" type="text" name="category" id="category" placeholder="Search..." ng-model="asyncSelected" typeahead="name for name in getCdOnCat($viewValue)" typeahead-loading="loadingLocations" required>

controller.js

//Typeahead: Category Search
$scope.getCdOnCat = function (searchVal) {
    return dataFactory.getCdOnCategory(searchVal, globalVal_accessToken, globalVal_storeId).then(function (response) {
        console.log(response.data.categories);
        return response.data.categories;
    }, function (error) {
        console.log('Error: dataFactory.getCdOnCategory');
    });
};

service.js

app.factory("dataFactory", function ($http) {
var factory = {};

factory.getCdOnCategory = function (searchVal, accessToken, storeId) {
    return $http.get('data/getCdOnCategory.aspx?searchVal=' + searchVal + '&accessToken=' + accessToken + '&storeId=' + storeId)
};

return factory;
});

JSON

{ "categories":[ 
    { "name": "Clothes" }, 
    { "name": "Cypress" }, 
    { "name": "Citrus" }, 
    { "name": "Cats" } 
] }

回答1:


Please see here http://plnkr.co/edit/F4n1kNOHfZ9f3Zz63x2P?p=preview

change

<input class="form-control" type="text" name="category" id="category" 
 placeholder="Search..." ng-model="asyncSelected" 
 typeahead="name for name in getCdOnCat($viewValue)" typeahead-loading="loadingLocations" 
 required>

to

<input class="form-control" type="text" name="category" id="category" 
 placeholder="Search..." ng-model="asyncSelected" 
 typeahead="obj.name for obj in getCdOnCat($viewValue)" typeahead-loading="loadingLocations" 
 required>


来源:https://stackoverflow.com/questions/26670987/ui-bootstrap-typeahead-not-returning-async-values

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!