2015-04-21 220 views
0

好标题成为升技长,但让我解释开始了:angularjs过滤搜索

我有一个叫做服务:

divisionService 

从此我有一个功能,返回我系统中所有Divisions的列表。

我使用这个列表来填充select

<select class="form-control input-sm" ng-model="search.division.name" 
          ng-options="item as item.name for item in auoCtrl.divisionList"> 
         <option value="">Alle</option> 
    </select> 

然后,我有一个选择我的用户(加上一些额外的统计数据)一个HTTP请求

$http.get(api.getUrl('getUserStats', null)) 
    .success(function (response) { 
     auoc.users = response; 
    }); 

的响应可能看起来像这个:

[Object, Object, Object, Object, Object] 

其中每个物体看起来像这样:

object = { 
avg_score : 5 
completed_modules: 
user: object{ 
      division: object{id: 19, location_id: 5, name: "Udvikling", organization_id: 1 
      }, 
division_id: 19 
id: 1 
image_path: "img/profileIcon.png" 
    } 
} 

我希望你可以阅读上面有严重的数据里面的那个用户对象。

现在我希望绑定我的select以按照其division对象对我的用户列表进行排序。所以,我认为这将是ng-model="search.division",然后我重复做:

ng-repeat="user in auoCtrl.users | filter: search" 

可悲的是改变select的一切得到了隐藏

值当,所以我想我的问题是。我如何在这个例子中搜索分部? :s

+0

你可以尝试search.division在NG-模型 – YOU

+0

@YOu $可悲的是这并不工作:S。 –

+0

您的划分是一个对象,要过滤哪些该对象的领域? – YOU

回答

0

根据所提供的代码和我对该问题的理解,我创建了一个简单的Plunker过滤分部名称。

复杂性来自用户的嵌套本质和它的分工。这意味着,在应用过滤器时,需要'迭代地'通过可用的属性来筛选所需的属性。

在这种情况下,我根据选定的部门名称筛选了用户。

<ul> 
    <li ng-repeat="user in auoCtrl.users | 
       filter: {user: {division:{name:auoCtrl.selectedDivision.name}}}"> 
     {{user.user.division.name}} 
     <br />{{user | json}}</li> 
    </ul>