Typeahead с использованием имени объекта

Я пытаюсь настроить typeahead с помощью AngularJS и пользовательского загрузочного файла

.html

<input type="text" ng-model="selectedStuff" typeahead="stuff.name for stuff in stuffs | filter:$viewValue"/>

<span>{{selectedStuff.name}}</span>
<span>{{selectedStuff.desc}}</span>

.js

$scope.stuffs= [
                {
                 "name":"thing1",
                 "desc":"this is the first thing"
                },
                {
                 "name":"thing2",
                 "desc":"this is the second thing"
                }
               ]

В настоящее время я смог обновить модель с выбранным именем, но моя цель - пройти по всему объекту через typeahead. Есть ли чистый способ сделать это, используя только вход?

Ответы

Ответ 1

Уверенная вещь: -)

Директива typeahead из http://angular-ui.github.io/bootstrap/ использует тот же супергибкий синтаксис, что и директива select AngularJS для ng-options. Поэтому вы можете написать:

typeahead="stuff as stuff.name for stuff in stuffs | filter:$viewValue"

Вот рабочий план: http://plnkr.co/edit/5kGZkNPZ7rIFfb4Rvxej?p=preview

Ответ 2

У меня была та же проблема. Я решил его

typeahead="country.name for country in countryList | filter:$viewValue | limitTo:8"

здесь countryList - это список объектов страны. имя - одно из свойств объекта страны. Для меня это нормально работает.