1

我有一個用戶對象類似下面的一個:角JS器組選擇濾波器

$scope.users = [ 
    { 
     name : 'John Doe', 
     attached_groups = [ 
      {1:object}, 
      {2:object} 
     ] 
    }, 
    { 
     name : 'Bob Doe', 
     attached_groups = [ 
      {3:object}, 
      {4:object} 
     ] 
    } 
]; 

在我的HTML,我有以下組選擇。

<select id="group_filter"> 
    <option value="1">Group 1</option> 
    <option value="2">Group 2</option> 
    <option value="3">Group 3</option> 
    <option value="4">Group 4</option> 
</select> 

我想添加一個過濾器到我的ng-repeat組中的文件管理器。我有以下的重複。

<tr ng-repeat="user in users| filter:query> 

任何幫助,將不勝感激。

+1

$ scope.users很奇怪。當然你沒有其他結構? –

回答

2

嗯,我didn't改變$ scope.users的結構,但你需要檢查,因爲我覺得donñt是最好的辦法。

這裏最重要的:

http://codepen.io/luarmr/pen/YXVqqp

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

,你需要定義的搜索過濾器:

$scope.search = function(user) { 

    if ($scope.filter === undefined) { 
     return true; 
    } 

    var match = false; 

    angular.forEach(user.attached_groups, function(group) { 
     if (group.hasOwnProperty($scope.filter)) { 
     match = true; 
     } 
    }); 

    return match; 
}; 

如果你改變了attached_groups過濾可以更容易。你可以在這裏看到這個例子:https://docs.angularjs.org/api/ng/filter/filter

+0

完美。你的傳奇:-) – hawx

1

創建類型文本的輸入,並且ng-model="query"

<input type="text" ng-model="query"> 

這將被過濾:

<tr ng-repeat="x in users | filter:query">...</tr>