angularjs - how to get in the controller the index of an item in a ng-repeat filter based on the value of one of its properties?

雨燕双飞 提交于 2019-11-27 23:19:01
j.wittwer

Your ng-repeat expression creates the filteredList array on your scope.
<li ng-repeat="item in (filteredItems = (items | filter:query))">

You can loop through it like any array, checking for the item matching the name parameter. $scope.filteredItems

Here is a demo: http://plnkr.co/69nnbaZaulgX0odG7g7Y

See this related post: AngularJS - how to get an ngRepeat filtered result reference

Update
Your comments indicate that you don't want to wait for ng-repeat to create the array of filtered items. You can use the $filter service to easily initialize the same array before the page loads. Use:

$scope.filteredItems = $filter('filter')($scope.items, {name: $scope.query}, false)

Doing so does not interfere with ng-repeat saving its filter results to the same filteredItems array during DOM creation.

Here is an updated (and interactive) demo: http://plnkr.co/NSvBz1yWvmeFgXITutZF

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!