javascript - Angular : How to filter by deep object property in array?

标签 javascript angularjs filter

我有一个格式如下的对象:

id: 1,
name: MyObj
properties: {
  owners: [
  {
    name:owner1,
    location: loc1
  },
  {
    name:owner2,
    location: loc1
  }
 ]
}

每个对象的所有者数量不同。当我尝试使用 ng-repeatfilter:searchBox 和搜索框输入

对其进行过滤时
<input name="search-filter" class="form-control" type="search" ng-model="searchBox.properties.title" />
<input name="search-filter" class="form-control" type="search" ng-model="searchBox.properties.owners" />

按标题过滤效果很好,但是所有者过滤根本不起作用,但我认为它会根据位置和名称进行过滤。我做错了什么?

最佳答案

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {

$scope.objs = 
  {
    id: 1,
    name: 'MyObj',
    properties: {
      owners: [
      {
        name: 'owner1',
        location: 'loc1'
      },
      {
        name: 'owner2',
        location: 'loc2'
      }
     ]
    }
  };

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>

<div ng-app="myApp" ng-controller="myCtrl">

<input name="search-filter" class="form-control" type="search" placeholder="Search by location" ng-model="searchBox.properties.location" />
<input name="search-filter" class="form-control" type="search" placeholder="Search by name"   ng-model="searchBox.properties.owners" />
 
  <div ng-repeat="owner in objs.properties.owners | filter:{'location': searchBox.properties.location} |filter:{'name': searchBox.properties.owners}">
    {{owner}}
    
  </div>

</div>

关于javascript - Angular : How to filter by deep object property in array?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31521924/

相关文章:

javascript - HTML5 的平台独立容器,可以从套接字发送/接收数据

javascript - Angular $uibModal 导致错误 : [$injector:unpr]

javascript - FullCalendar:过滤多种类型的事件

javascript - 尝试在数组上运行过滤器时未定义

java 文件名过滤模式

javascript - CSS 以最大宽度 float ?

javascript - 动画每个文本行

javascript - 隐藏图像后显示图像

angularjs - 嵌套kendo网格-将detailInit与服务调用中的数据绑定(bind)

javascript - 当用户在 Angular 中使用正则表达式仅输入 0 或 0.0 时如何显示错误消息?