typeahead не может извлекать данные из api angularjs

это мой html-код

<input type="text" ng-model="ngModelOptionsSelected" 
 placeholder="Enter Story Title"
 ng-model-options="modelOptions" 
 ng-change="onChangeFunction()"
 typeahead-on-select="typeaheadOnSelectFunction()"
 uib-typeahead="document as document.Name for document in getStory($viewValue)" 
 class="form-control">

это мой .js код

$scope.getStory = function (val) {
storyService.GetStoryByName(cacheService.project.projectId,val).success(function (data) {
                if (data.ResponseStatus) {
               debugger;
                    return  data.ResponseData;
                } else {
                    //On failure
                    toastr.error(data.ErrorData.Error);
                }
            });
        };

который возвращает данные типа ResponseData =

[{"Id":211380.0,"Name":"dixit"},{"Id":211488.0,"Name":"dixit ade"},{"Id":251541.0,"Name":"dixit"},{"Id":842671.0,"Name":"dixit"},{"Id":842672.0,"Name":"dixit choksi"}]

но я не могу привязывать данные в typeahead.

пожалуйста, помогите мне, я застрял. благодаря

javascript,angularjs,

0

Ответов: 1


1 принят

Ваша функция $scope.getStory()ничего не возвращает, ваша обратная линия return data.ResponseData;вложена в другую функцию.

uib-typeaheadДиректива может работать с обещаниями так что вам просто нужно вернуть обещание из вашей функции.

$scope.getStory = function (val)
{
    return storyService.GetStoryByName(cacheService.project.projectId, val).success(function (data)
    {
        if (data.ResponseStatus)
            return data.ResponseData;

        toastr.error(data.ErrorData.Error);

        return [];
    });
};

Вы также можете добавить другое свойство в директиву typeahead-loading="isLoading", которое будет переключаться, пока обещание будет разрешено. Например, он может использоваться для показа / скрытия загружающих прядильщиков!

JavaScript, angularjs,
Похожие вопросы