Я пробую директиву angular-ui typeahead. Желаемый результат: в поле ввода должны отображаться только отфильтрованные элементы на основе того, что было введено. Мой код отображает все элементы.
Я создал планкер для кода по адресу http://plnkr.co/edit/8uecuPiVqmEy6gFQYeXC.
Что с этим не так? Большое спасибо.
На тот случай, если вы не можете получить доступ к plunker, соответствующий html-код выглядит следующим образом:
<div class='container-fluid' ng-controller="TypeaheadCtrl">
<h4>Testing angular-ui Typeahead</h4>
<!-- <pre>Model: {{asyncSelected | json}}</pre> -->
<input type="text" ng-model="typeahead" typeahead="names for names in getName($viewValue) " class="form-control">
</div>
Соответствующий код JS выглядит так:
function TypeaheadCtrl($scope, $http)
{
// Any function returning a promise object can be used to load values asynchronously
$scope.getName = function(val)
{
return $http.get('test.json')
.then(function(res)
{
var names = [];
angular.forEach(res.data, function(item)
{
names.push(item.name);
});
return names;
});
};
}
Файл json из http get выглядит так:
[
{
"name": "Tom"
},
{
"name": "Tom2"
}
]