我有以下
Angular
UI-Bootstrap
typeahead工作很棒:
<input class="span2" type="text" ng-model="selectedStuff" typeahead="stuff as stuff.name for stuff in stuffs | filter:$viewValue"/>
尽管如此,它几乎工作得太好了。我可以显示stuffs.name为目的的目的,并选择完整的东西对象的东西。问题是我的$ viewValue匹配所有的东西属性,而不仅仅是stuff.name。我已经尝试将.name添加到typeahead的各个地方,没有运气。有没有一种简单的方式来显示和匹配只有.name但仍然返回整个对象?
来自
http://angular-ui.github.io/bootstrap/ repo的typahead指令的构建很适合现有的AngularJS生态系统。这意味着该指令尝试尽可能多地重复使用AngularJS中已经使用的语法,过滤器和指令。
回到你的问题 – 过滤本身就是由Angular过滤器完成的:http://docs.angularjs.org/api/ng.filter:filter上述过滤器的语法足够灵活,可将搜索限制到一组选定的属性:
typeahead="stuff as stuff.name for stuff in stuffs | filter:{name: $viewValue}"
请注意:filter:{name:$ viewValue}