这是我的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中绑定数据。
请帮助我,我被卡住了。 感谢答案 0 :(得分:1)
您的函数$scope.getStory()
实际上没有返回任何内容,您的返回行return data.ResponseData;
嵌套在另一个函数中。
uib-typeahead
指令可以使用promises,因此您只需要从函数中返回promise。
$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"
添加另一个属性,该指令将在promise解析时进行切换。例如,它可用于显示/隐藏加载微调器!