Ваша функция $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", которое будет переключаться, пока обещание будет разрешено. Например, он может использоваться для показа / скрытия загружающих прядильщиков!