AngularJS如何仅按姓名过滤列表?
仅按姓名筛选的AngularJS搜索实现
嗨,这问题其实很好解决!你现在用的是全局搜索的filter写法,所以会遍历studentData里的所有字段。要只针对FullName字段筛选,只需要把过滤器的参数改成对象形式就可以了,这是AngularJS里最简单的实现方式。
修改后的代码:
<input type="text" ng-model="searchText" placeholder="Search for a pupil..." /> <tr ng-repeat="student in studentData | filter:{FullName: searchText}">
原理说明:
- 原来的
filter: searchText是让AngularJS在studentData的每一项里,搜索所有属性中包含searchText值的条目。 - 改成
filter:{FullName: searchText}后,就会只检查每个student对象的FullName属性,只有当这个属性包含输入的搜索文本时,才会被保留在ng-repeat的结果里。
如果之后你需要扩展到多个指定字段,也可以在这个对象里添加更多键值对,比如filter:{FullName: searchText, Grade: searchGrade},不过你现在只需要单字段筛选,上面的写法完全够用啦。
内容的提问来源于stack exchange,提问作者Nemanja Grabovac
相关产品推荐
相关产品推荐

