使用对象名称预先输入

时间:2013-04-15 14:17:45

标签: angularjs bootstrap-typeahead angular-ui-bootstrap

我正在尝试使用AngularJS&设置typeahead UI Bootstrap喜欢这样:

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传递整个对象。有没有一种干净的方法只使用输入?

2 个答案:

答案 0 :(得分:26)

当然可以: - )

来自http://angular-ui.github.io/bootstrap/的typeahead指令使用与ng-options的AngularJS select directive相同的超灵活语法。所以你可以写:

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

这是一个有效的插件:http://plnkr.co/edit/5kGZkNPZ7rIFfb4Rvxej?p=preview

答案 1 :(得分:0)

我遇到了同样的问题。

我解决了这个问题
typeahead="country.name for country in countryList | filter:$viewValue | limitTo:8"

here countryList是国家/地区对象的列表。 name是country对象的属性之一。对我来说它工作正常。