You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AngularJS如何按数组中pageindex字段过滤实现数据展示

实现AngularJS数组按输入框值过滤展示

这事儿在AngularJS里其实很容易实现,用内置的filter过滤器或者自定义过滤函数都能搞定,我给你两种方案参考:

方案一:用AngularJS内置filter快速实现

这种方式适合简单的匹配场景(你的pageindex是唯一值,所以也能实现精确匹配),只需要给输入框绑定ng-model,然后在ng-repeat里添加过滤条件即可:

控制器代码

// 假设你的数组已经定义在$scope中
$scope.fieldsonpdf = [
  {fieldname:'firstname',pageindex:'1'},
  {fieldname:'lastname',pageindex:'2'}
];

HTML代码

<input type="text" id="pageindex" ng-model="pageIndexInput" placeholder="输入页码" /> 
<span class="fieldindex" ng-repeat="x in fieldsonpdf | filter: {pageindex: pageIndexInput}"> 
  {{x.fieldname}}
</span>

说明:输入框绑定pageIndexInput变量后,filter会自动匹配数组中pageindex字段与输入值一致的项——输入1显示firstname,输入2显示lastname,输入空则会展示所有项。

方案二:自定义过滤函数实现精确匹配

如果需要更严格的匹配(比如避免输入"1"时意外匹配到pageindex为"10"的项),可以自定义一个过滤函数:

控制器代码

$scope.fieldsonpdf = [
  {fieldname:'firstname',pageindex:'1'},
  {fieldname:'lastname',pageindex:'2'}
];

// 自定义过滤函数
$scope.filterByPageIndex = function(item) {
  // 输入为空时不显示任何内容,若想显示所有可把return改成true
  if (!$scope.pageIndexInput) return false;
  // 严格校验pageindex与输入值完全相等
  return item.pageindex === $scope.pageIndexInput;
};

HTML代码

<input type="text" id="pageindex" ng-model="pageIndexInput" placeholder="输入页码" /> 
<span class="fieldindex" ng-repeat="x in fieldsonpdf | filter: filterByPageIndex"> 
  {{x.fieldname}}
</span>

说明:这种方式会严格校验pageindex和输入值是否完全一致,避免模糊匹配带来的意外情况,同时还能灵活控制输入为空时的展示逻辑。

内容的提问来源于stack exchange,提问作者davidi sheleg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 11:32:56