Я пишу панель поиска с вводом текста, используя ui.bootstrap typeahead
, и обнаружил, что этот компонент довольно прост в использовании.
Мой Контроллер передает данные в $scope
следующим образом:
var good = [{ name: 'Mario', role: 'sup' },
{ name: 'Luigi', role: 'bro' },
{ name: 'Yoshi', role: 'pet' }]
var bad = [{ badname: 'Bowser', role: 'boss' },
{ badname: 'Sauron', role: 'eye' },
{ badname: 'Jason', role: 'knifer' }]
$scope.data = good.concat(bad)
Затем в Вид у меня есть что-то вроде этого:
<div class="container-fluid">
<pre>Model: {{selected| json}}</pre>
<input type="text" ng-model="selected" typeahead="datum.name for datum in data | filter:$viewValue | limitTo:4">
</div>
Это приводит к поиску хороших парней, а не плохих (потому что у них badname
вместо name
).
Есть ли способ найти и то, и другое?
Бонус: я хотел бы показать
role
моих парней под их именами... подсказки? Изменить: мне известно об этом упреждающем вводе с использованием имени объекта для выбора всего объекта, но я надеялся показать его и во всплывающем окне...
Здесь добавлен Plnkr --> http://plnkr.co/edit/KqvUlf
Держите консоль открытой, и вы увидите проблему с ярлыком, о котором я говорил
Появляются только хорошие парни, конец даже тогда, когда поиск выдает исключение при поиске несуществующего поля в плохом ребята