Javascript Angular UI Typeahead不显示下拉列表

Javascript Angular UI Typeahead不显示下拉列表,javascript,angularjs,angular-ui,angular-ui-bootstrap,Javascript,Angularjs,Angular Ui,Angular Ui Bootstrap,我的下拉列表没有显示,即使我知道它得到了正确的结果。代码: <input type="text" ng-model="newSelectedSemester" placeholder="Semester name" typeahead="semester.name for semester in getSemesters($viewValue)"> 我可以确认getSemesters正在返回一个对象数组,每个对象上都有name属性 我也已经在我的站点的其他地方实现了这一点,所以

我的下拉列表没有显示,即使我知道它得到了正确的结果。代码:

<input type="text" ng-model="newSelectedSemester" placeholder="Semester name" typeahead="semester.name for semester in getSemesters($viewValue)">

我可以确认getSemesters正在返回一个对象数组,每个对象上都有name属性

我也已经在我的站点的其他地方实现了这一点,所以我知道我正在引入正确的依赖项。我在这里遗漏了什么?

找到了问题所在

我使用的是$http.get,从“success”函数返回,而我本应该从“then”函数返回。我不知道这是为什么,但它起了作用:)

发现了问题


我使用的是$http.get,从“success”函数返回,而我本应该从“then”函数返回。我不知道这是为什么,但它起了作用:)

我遇到了另一个解决方案,它为我解决了这个问题:

$scope.solution = function(val){
    var data = {
        cards: val
    };
    var result = [];
    var deferred =  $q.defer();

    $http.post('/somepath', data)
        .success(function(response) {
            angular.forEach(response, function(card) {
                result.push(card);
            });
            return deferred.resolve(result);
        })
        .error(function(){
            /* error handling */
        });
    return deferred.promise;
};
下面是HTML部分的一个示例:

<input ... uib-typeahead="card as card.number + ' ' + card.suit for card in cardList($viewValue)" />

这里是我遇到的另一个解决方案,它为我解决了这个问题:

$scope.solution = function(val){
    var data = {
        cards: val
    };
    var result = [];
    var deferred =  $q.defer();

    $http.post('/somepath', data)
        .success(function(response) {
            angular.forEach(response, function(card) {
                result.push(card);
            });
            return deferred.resolve(result);
        })
        .error(function(){
            /* error handling */
        });
    return deferred.promise;
};
下面是HTML部分的一个示例:

<input ... uib-typeahead="card as card.number + ' ' + card.suit for card in cardList($viewValue)" />


您是否检查了控制台有无错误?您是否检查了控制台有无错误?问题是您有一个
getSemests($viewValue)
函数,它应该返回特定的值。它内部的成功不是函数的返回,而是get()操作的返回。您必须使用特定的返回或then()来获得实际值。问题是您有一个
getSemests($viewValue)
函数,该函数应该返回特定值。它内部的成功不是函数的返回,而是get()操作的返回。您必须使用特定的返回或then()来获得实际值。