javascript - 如何根据同一对象内给定的键值过滤对象

标签 javascript angularjs

我有一个对象列表,我必须根据同一对象内存在的键值过滤对象并创建 <div>带有内容的标签。

对象列表:

{
    "statusCode" : 200,
    "statusMessage" : "OK",
    "result" : [
    {
            "owner" : {
                "id" : "3f32ce2f-4300-439b-84bc-92ad46fbccf7"
            },
            "name" : "Test 12345",
            "description" : "Test 12345",
            "created_at" : 1465222538,
            "active" : "true",
            "id" : "2ade9236-c382-400c-9c0b-94e96db9b2aa",
            "status" : "OPEN"
        }, {
            "owner" : {
                "id" : "3f32ce2f-4300-439b-84bc-92ad46fbccf7"
            },
            "name" : "sample2",
            "description" : "sample2",
            "created_at" : 1465117865,
            "active" : "true",
            "id" : "8bf206f9-d3e0-43f4-ba3f-f71c88db9b0e",
            "status" : "IN PROGRESS"
        }, 
    ]
}

我想根据"status" : "IN PROGRESS"过滤数据或"status" : "OPEN"并显示<li>里面的数据标签,但问题是标识符(键)存在于同一对象内。我如何在 angularjs 或 vanilla javascript 中实现这一点?

现在我正在使用 ng-repeat 循环创建和显示 <li> 中的数据:

<div>
    <ul>
        <li ng-repeat="wd in currentPageWorkOrders>
            <a ng-click="viewProject(wd)"  href="">
                <h4>{{wd.name}}</h4>
            </a>
            <p>Publisher Name</p>
        </li>
    </ul>
</div>

最佳答案

您可以以更短的方式使用 Angular 的过滤器。 例如您可以在 ng-repeat 中进行过滤。

所以,你的 ng-repeat 将是这样的:

<li ng-repeat="wd in elements | filter:search">
  <a ng-click=" viewProject(wd) " href=" ">
    <h4>{{wd.name}}</h4
  </a>
  <p>Status: {{wd.status}}</p>
</li>

其中搜索是一个新元素,您可以在其中设置 fiters 元素。就我而言,我使用:

<span class="btn btn-default" ng-click="search.status=''">No Filters</span>
<span class="btn btn-primary" ng-click="search.status='OPEN'">Show Open</span>
<span class="btn btn-success" ng-click="search.status='IN PROGRESS'">Show In Progress</span>

您可以在 Plunkr 中检查它是如何工作的:https://plnkr.co/edit/5V3Rg0lggjnPVFu3srsG?p=preview

关于javascript - 如何根据同一对象内给定的键值过滤对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37661451/

相关文章:

javascript - 如何将 ids 列表传递给 mysql 从 NodeJs 删除查询

javascript - AngularJS - 当值为 true 时设置选中复选框

javascript - 我需要关于 Annotator.js 的例子

javascript - 如何用Javascript手动调用CSS动画?

javascript - Spring Boot WRo4j 需要重新启动应用程序才能看到 javascript 更改

angularjs - Angular RouteProvider - 解决不将对象传递给 Controller ​​的问题

javascript - 引用错误 : module is not defined in jasmine

javascript - 如何使用 AngularJS 呈现原始 html?

javascript - 如何防止烦人的 float 连接

javascript - 如何通过传递参数返回到上一页?