2015-04-21 267 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>