AngularJS如何设置filter仅搜索Employee数组的FName字段而非全部内容
解决方案
AngularJS 内置的filter过滤器支持传入对象格式的参数,可自定义指定要检索的字段,无需改动其他逻辑,仅修改ng-repeat中的过滤规则即可。
具体修改
将原代码中ng-repeat的过滤规则
<tbody ng-repeat="employee in Employee | filter:SearchInput">
修改为
<tbody ng-repeat="employee in Employee | filter:{FName: SearchInput}">
补充说明
- 如果需要严格匹配(只有FName和搜索内容完全相等才命中结果),可添加第三个参数
true,写法为:<tbody ng-repeat="employee in Employee | filter:{FName: SearchInput}:true"> - 该写法仅会检索员工对象的
FName字段,不会匹配ID、DoB、Gender等其他字段,符合需求。
修改后完整代码
<thead> <th>ID</th><th>Employee</th><th>DoB</th><th>Gender</th> </thead> <tbody ng-repeat="employee in Employee | filter:{FName: SearchInput}"> <tr ng-controller="TableContent"> <td>{{ employee.ID }}</td><td>{{ employee.FName + " " + employee.LName }}</td><td>{{employee.DoB}}</td><td>{{employee.Gender}}</td> <td hidden>{{ $index }}</td> <td> <button ng-click="EditSaverCommit()" class="btn btn-success" data-bs-toggle="modal" data-bs-target="#EditEmployeeModal" type="button"> Edit {{ employee.ID }}</button> </td> <td> <button class="btn btn-danger" type="button" ng-click="DeleteEmployeeCommit()"> Delete {{ employee.ID }}</button> </td> </tr> </tbody>
内容的提问来源于stack exchange,提问作者user199135
相关产品推荐
相关产品推荐

