AngularUI-Bootstrap's Typeahead Can't Read `length` Property of `undefined`

前端 未结 3 745
时光取名叫无心
时光取名叫无心 2020-12-31 03:07

I am getting the following error when I attempt to get a typeahead values from AngularUI-Bootstrap, using a promise.

TypeError: Cannot read property \'length         


        
3条回答
  •  借酒劲吻你
    2020-12-31 03:24

    $scope.getTypeaheadValues is not returning any array. It returns null, because your return statement is in the callback function "success", which is called asynchrony.

    Maybe this will work:

    $scope.getTypeaheadValues = function($viewValue)
    {    
        var output = [];
        $http({
            method: 'GET',
            url: 'api/v1/person?name__icontains=' + $viewValue
        }).error(function ($data) {
            console.log("failed to fetch typeahead data");
        }).success(function ($data) {            
            $data.objects.forEach(function (person)
            {
                output.push(person.name);
            });
            console.log(output);        
        });
        return output;
    }
    

提交回复
热议问题