2015-04-12 83 views
1

我完全陌生,所以原諒我的問題。 我試圖用用戶輸入創建一個過濾器列表。這是我想要做的一件事。 http://plnkr.co/edit/asrZJj2HFJCnmmqJLlgt?p=previewAngular創建過濾器的自定義列表

我明白,我對我的NG-重複狀態應該是類似的東西:

ng-repeat="filter in filters | filter: filters" 

,並在我的過濾器類似的東西的工作

ng-repeat="...| filter:{dev:java, happy:true}" 

所以我以我想要做的方式做,或者我必須創建一個過濾器模塊?

+0

你試圖過濾數據? – Aj1

+0

是的,我正在盡力去做那件事。 – adam

回答

1

您可以做的最簡單的事情是使用簡單的對象來過濾器而不是數組,其中過濾器名稱將是一個屬性鍵。在這種情況下,你將會使過濾器這樣的:

<span class="btn btn-success" ng-repeat="(name, value) in filters"> 
    <strong>{{name}} : {{value}}</strong> 
</span> 

和填充它們在控制器這樣的:

$scope.createFilter = function(name, value) { 
    $scope.filters[name] = value; 
    $scope.cleanInput(); 
}; 

在此設置下它很容易將過濾器應用於表中的數據:

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

演示:http://plnkr.co/edit/Hp8EPpvHv8vklSiFOG6U?p=info

+0

謝謝完美! – adam

+0

我也想知道在用戶點擊一行時創建一個過濾器,但這次只有用戶名,你有想法以同樣的方式做?並順便再次感謝人! – adam

+0

你可以在'tr'上使用ngClick。檢查此演示:http://plnkr.co/edit/U13deGvSfdqJo0JFsLC4?p=preview – dfsq