2015-04-12 79 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