在 AngularJS 中使用单个输入过滤多个字段

2024-06-02

我有一个 JSON 对象,如下所示

[{
    "id": 1,
    "firstName": "Jennifer",
    "middleName": null,
    "lastName": "Aniston",
    "address": "New York City",
}, {
    "id": 2,
    "firstName": "Angelina",
    "middleName": null,
    "lastName": "Jolie",
    "address": "Beverley Hills",
}, {
    "id": 3,
    "firstName": "Emma",
    "middleName": null,
    "lastName": "Watson",
    "address": "London",
}]

我使用 ng-repeat 在视图中填充这些数据。

<td ng-repeat="row in list | filter:filterBeauties">
{{row.firstName}} {{row.lastName}}
</td>

现在我有一个输入框,我想用它来过滤这些名称。我想使用相同的输入框来过滤firstName,然后过滤lastName,并且不过滤其他任何内容(例如地址)。

<input type="text" placeholder="Filter" ng-model="filterBeauties.firstName">

知道我怎样才能实现它吗?


尝试这个fiddle http://jsfiddle.net/qa98r/2/.

本质上,我创建了一个子结构,用于在显示的数据结构中进行过滤,并仅在该属性上进行过滤(例如“filterTerms”):

HTML:

<div ng-controller="MyCtrl">
   <input type="text" ng-model="search.filterTerms">
   <table border="1">
      <tr ng-repeat="row in list | filter:search">
         <td>{{row.firstName}} {{row.lastName}}</td>
      </tr>
   </table>
</div>

JavaScript:

var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
$scope.list = [{
    "id": 1,
    "address": "New York City",
    "firstName": "Jennifer",
    "middleName": null,
    "lastName": "Aniston",
    "filterTerms": {
        "firstName": "Jennifer",
        "middleName": null,
        "lastName": "Aniston",
    }
}, {
    "id": 1,
    "address": "New York City",
    "firstName": "Jennifer",
    "middleName": null,
    "lastName": "Leela",
    "filterTerms": {
        "firstName": "Jennifer",
        "middleName": null,
        "lastName": "Leela",            
    }
}, {
    "id": 2,
    "address": "Beverley Hills",
    "firstName": "Angelina",
    "middleName": null,
    "lastName": "Jolie",
    "filterTerms": {
        "firstName": "Angelina",
        "middleName": null,
        "lastName": "Jolie",            
    }
}, {
    "id": 3,
    "address": "London",
    "firstName": "Emma",
    "middleName": null,
    "lastName": "Watson",
    "filterTerms": {
        "firstName": "Emma",
        "middleName": null,
        "lastName": "Watson",            
    }
}];
}

对于这种情况,您可以通过将所有名称放入一个字段来进一步简化这一点(请参阅 fiddlehere http://jsfiddle.net/VsdR3/1/:

HTML:

<div ng-controller="MyCtrl">
    <input type="text" ng-model="search.filterTerm" />
    <table border="1">
        <tr ng-repeat="row in list | filter:search">
            <td>{{row.first}} {{row.last}} {{row.address}}</td>
        </tr>
    </table>
</div>

JavaScript:

var myApp = angular.module('myApp', []);
function MyCtrl($scope) {
    $scope.list = [{
        "id": 0, "first": "Jenny", "last": "Sorenson", "address": "123 W. Wallnut St.",
        "filterTerm": "Jenny Sorenson"
    },{
        "id": 0, "first": "Susan", "last": "Hinkle", "address": "456 W. Doorbell Dr.",
        "filterTerm": "Susan Hinkle"
    },{
        "id": 0, "first": "Rachel", "last": "Karlyle", "address": "789 W. Sunset Blvd.",
        "filterTerm": "Rachel Karlyle"
    },{
        "id": 0, "first": "Gwen", "last": "Lippi", "address": "0 W. Silly Cir.",
        "filterTerm": "Gwen Lippi"
    }]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 AngularJS 中使用单个输入过滤多个字段 的相关文章

随机推荐

  • 将字符串的第一个字母大写(前面带有特殊字符) - PHP

    我想将字符串大写 例如 hello 我希望我的函数返回 Hello 我尝试过使用 regex 和 preg match 但没有运气 这是我之前的问题 与此相关 preg match 正在匹配两个字符 而它应该只匹配一个字符 https st
  • 如何使用自定义源正确设置 Amazon Route 53、CloudFront

    我目前正在使用亚马逊 53 号公路用于我的 DNS 设置和自定义源 亚马逊外部的 Web 服务器 我想补充一下云锋混合但我不太确定如何设置它 我已经看过 Amazon 关于使用 Route 53 和 CloudFront 设置 S3 的指南
  • Xcode MyProjectName-Bridging-Header.h 不存在

    我想开始在我的 Objective C 项目中使用 Swift 所以我添加了一个快速类 import Foundation objc class System NSObject objc func printSome println Pri
  • Apress Pro Asp.net MVC Framework 3 - SportsStore 编辑产品无法正常工作?

    大家好 有人购买了 Apress Pro Asp net MVC Framework 3 的 ALPHA 并创建了 SportsStore 吗 我无法终生编辑产品并成功更新数据库吗 没有显示错误 单元测试全部功能 但没有成功的 编辑 即我更
  • 如何让 Laravel“确认”验证器将错误添加到确认字段?

    默认情况下 Laravel 确认 验证器将错误消息添加到原始字段 而不是通常包含确认值的字段 password gt required confirmed min 8 是否有任何简单的方法来扩展验证器或使用一些技巧来强制它始终在确认字段而不
  • WebApi 添加另一个 Get 方法

    我有一个非常标准的 WebApi 可以执行一些基本的 CRUD 操作 我正在尝试添加一些不同类型的查找 但不太确定它应该如何完成 这是我目前的FoldersController public class FoldersController
  • file_get_contents,HTTP 请求失败

    我尝试使用以下方式从另一个网站获取内容file get contents但我总是收到 无法打开流 HTTP 请求失败 allow url fopen 已打开 并且我已经在防火墙关闭的情况下进行了测试 但还是会出现这种情况 请问还有什么原因呢
  • Asyncio 中的无限循环或“递归”

    我是 Python3 asyncio 的新手 我有一个函数可以不断地从 websocket 连接检索消息 我想知道我是否应该使用while True循环或asyncio ensure future以递归方式 哪个是首选还是不重要 Examp
  • 错误:-march= 开关的值错误

    我写了一个Makefile 但无法让它工作 我有一个选项应该选择编译到哪个处理器 然而 当我跑步时make从命令行它说 tandex tandex P 6860FX emulators nintendo sdks 3DS SDK HomeB
  • 如何将对象(模型类型对象)插入到 Laravel 中 Collection 对象的特定索引号处?

    我读过戴尔 里斯的代码明亮 https daylerees com codebright 了解更多关于雄辩的信息Collection在 Laravel 中使用 还做了一些其他研究 但找不到我正在寻找的答案 我想插入一个对象 Model输入对
  • 找出 CPU 时钟频率(每个内核、每个处理器)

    像 CPUz 这样的程序非常擅长提供有关系统的深入信息 总线速度 内存时序等 但是 是否有一种编程方法可以计算每个核心 以及每个处理器 在每个 CPU 具有多个核心的多处理器系统中 频率 而无需处理 CPU 特定信息 我正在尝试开发一个反作
  • 无法使用动态布局使用 Gradio 音频输入进行录制

    我想创建一个界面gradio我有一个最初隐藏的音频输入 经过一些步骤后 例如收到指令后 用户可以录制音频 但是当我使音频输入可见时 它无法录制 import gradio with gradio Blocks as interface re
  • malloc :匿名映射和魔法区域

    我只是在摆弄内存映射 想查看用户空间虚拟内存区域映射 写了一些像这样的行 char ptr NULL printf Allocating 300KB n ptr malloc 300 1024 printf Allocated at p s
  • 以编程方式更改 iPhone 背景

    是否可以通过代码更改 iPhone 背景 如果你写一个新的png到 User Library LockBackground png然后打电话notify post com apple language changed 设备将重新启动 并且您
  • 将输入数据发送到node.js中的子进程

    我正在编写代码以在 Node js 环境中创建在线 C 编译器 使用spawn函数我创建了一个子进程 它将编译代码并执行它并将输出发送回用户 但我需要将输入发送到正在运行的 C 程序 我用了child stdin write data 用于
  • 竹子 - 构建我的拉取请求

    当拉取请求进入 git 时 我试图触发竹子中的构建 我可以将 webhook 信息发送到竹子 但它不是构建适当的 sha 标记的签入 而是构建 主 分支 这是否需要对竹子进行一些自定义 git 设置 到目前为止我还没有看到任何简单的事情 在
  • Fortran 意图(inout)与省略意图

    良好的实践表明 Fortran 中的子例程参数每个都应具有指定的意图 即intent in intent out or intent inout 如上所述这个问题 https stackoverflow com questions 1011
  • 想要在 jaxb2-maven-plugin 生成的类中使用 @XmlRootElement

    我有一组从 WSDL 生成的 Java 类 它们运行良好 我正在为我正在使用的另一个 Web 服务添加另一个 WSDL 到项目中 但我在第二个 WSDL 生成的类中没有得到 XmlRootElement 注释 并且不明白为什么不这样做 这是
  • 蓝牙 4.0 与较旧的蓝牙

    我正在尝试使用蓝牙 4 0 模块实现一个应用程序 我想知道将此应用程序与包含简单蓝牙 2 1 EDR 模块的 Iphone 3GS 一起使用是否能让我利用 4 0 模块中的低功耗 谢谢您的回答 蓝牙 4 0 是标准 其中包括经典蓝牙基本速率
  • 在 AngularJS 中使用单个输入过滤多个字段

    我有一个 JSON 对象 如下所示 id 1 firstName Jennifer middleName null lastName Aniston address New York City id 2 firstName Angelina