Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

angularJS + UI bootstrap typeahead: filter:$viewValue doesn't work

I don't manage to get the filter:$viewValue work in an input with typeahead. I get the whole list displayed with the entered characters highlighted. I expect a filtered list depending on the characters entered.

Here is a plunker: http://plnkr.co/edit/X3C0fP52ZTi55LJtXfnu?p=preview

In my real project, I need to apply two filters as below.

<input autocomplete="off" 
  type="text" 
  placeholder="Selected Criteria"     
  ng-model="MgtCtrl.editActionData.selectedCriteria" 
  typeahead='criteria as criteria.name for criteria in MgtCtrl.criteriaList | criteriaByApplication:MgtCtrl.getTriggerApplication() | filter:$viewValue | orderBy:"name"'>
like image 523
user3181983 Avatar asked Mar 23 '15 17:03

user3181983


1 Answers

If your collection item is an object, then you need to specify which property the filter should take into account.

As per your example, the filter would look like this:

| filter:{'name':$viewValue}

Since you're displaying the name property, it may be the name you want to filter by, but I may be wrong. So you need to adequate it with your context.

References: https://docs.angularjs.org/api/ng/filter/filter

like image 169
Felipe Zigmundo Avatar answered Oct 22 '22 21:10

Felipe Zigmundo