Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Typeahead using object name

I'm trying to setup a typeahead using AngularJS & UI Bootstrap like so:

.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"
                }
               ]

Currently, I've been able to update the model with the selected name, but my goal is to pass along the entire object via the typeahead. Is there a clean way to do this using only the input?

like image 226
Jesse Avatar asked Apr 15 '13 14:04

Jesse


1 Answers

Sure thing :-)

The typeahead directive from http://angular-ui.github.io/bootstrap/ uses the same super-flexible syntax as the AngularJS select directive for ng-options. So you could write:

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

Here is a working plunk: http://plnkr.co/edit/5kGZkNPZ7rIFfb4Rvxej?p=preview

like image 63
pkozlowski.opensource Avatar answered Oct 15 '22 17:10

pkozlowski.opensource