我需要使用angularjs实现从$ http请求中提取建议的预先输入功能。我正在使用Bootstrap 3.1。我无法让任何建议的实现工作。大多数人似乎都在使用Bootstrap 2.有许多第三方解决方案,其中没有一个我能够开始工作,包括ui-bootstrap,typeahead.js(来自twitter),以及其他建议。目前最简单的方法是什么?我发现只有6个月大的东西似乎已经过时了。
我正在尝试此处列出的说明: http://angular-ui.github.io/bootstrap/#/getting_started
我的观看代码:
<label for="originLocation" class="control-label">Origin Location</label>
<input id="originLocation" class="form-control"
ng-model="OriginLocation"
typeahead="suggestion for suggestion in getOriginSuggestions(OriginType, $viewValue)"
placeholder="Enter Location">
我的控制器:
$scope.getOriginSuggestions = function (locationType, phrase) {
locationRepository.searchByType(locationType, phrase)
.then(function (response) {
var locations = [];
angular.forEach(response.data, function (item) {
locations.push(item.LongDescription);
})
return locations;
});
我的控制器被击中,我确实填充了位置,但我从未看到打字行为。这是因为typeahead属性在bootstrap 3.1中不再起作用了吗?
答案 0 :(得分:3)
虽然我不知道你的locationRepository
是什么样子,但它似乎会返回一个承诺,因为你then
正在使用它。在此then
中,您将返回位置数组。
但你忘了在
返回承诺$scope.getOriginSuggestions = function (locationType, phrase) {
locationRepository.searchByType(locationType, phrase)
// (...)
你需要退货。 (正如他们在example中所做的那样)
$scope.getOriginSuggestions = function (locationType, phrase) {
return locationRepository.searchByType(locationType, phrase)
// (...)