Angularjs 按ng repeat中的每个项目筛选出
我有 我想做的是我有Angularjs 按ng repeat中的每个项目筛选出,angularjs,Angularjs,我有 我想做的是我有 myFilter = {status: '{{item.status}}'} 在这里,我有吴重复李元素,并得到了独特的地位 我有一个具有相同虚拟数组的表列表,该数组由myfilter过滤 $scope.dummyData = [{id: 1, name="Joe", status="active"},{id: 2, name="Joe",status="inactive"},{id: 3, name="John", status="active"}]; 我要做的
myFilter = {status: '{{item.status}}'}
在这里,我有吴重复李元素,并得到了独特的地位
我有一个具有相同虚拟数组的表列表,该数组由myfilter过滤
$scope.dummyData = [{id: 1, name="Joe", status="active"},{id: 2, name="Joe",status="inactive"},{id: 3, name="John", status="active"}];
我要做的就是
<tr ng-repeat="item in dummyData | filter:myfilter">
inactive
我以静态方式实现了这一点,但我想在上面重复执行。好的,您应该只使用angular提供的默认过滤器,这样您的代码将如下所示:
<li ng-click='myfilter = {status: "active"}'><a>Active</a></li>
<li ng-click='myfilter = {status: "inactive"}'><a>Inactive</a></li>
{{item.status}
由于默认筛选器使用部分匹配,因此需要编写自定义筛选器来执行精确匹配。更新后的控制器将如下所示:
<li ng-repeat="item in dummyData | filter:status" ng-click="select(item);" ng-class="{active: isActive(item)}"><a>{{item.status}}</a></li>
请注意,dummyData的语法也不正确,因此这也会给您带来问题。无论何时单击Active(活动)或Inactive(非活动),它都会重新定义自定义筛选器,使其状态与“Active”(活动)或“Inactive”(非活动)完全匹配
下面是一个演示您想要的内容的示例。我不确定您想做什么,如果您只想按条目的状态筛选条目,为什么要注意简单使用筛选器:status我不熟悉这一点,您能详细说明一下吗,我想按项筛选。状态否我不想这样做。我需要在上面的“重复”中按状态设置myfilter,以便可以筛选下表中的列表。如果MyFilter是一个自定义筛选器,则不需要使用“filter:MyFilter”,而是“MyFilter:status”。这不起作用,我在问题中添加了查询。我必须在单击时设置myFilter={status:item.status},以便相应的表列表得到filteredOkay,我明白为什么默认筛选器不能按您希望的方式工作。我用一个有效的例子和解释更新了我的答案。
<li ng-repeat="item in dummyData | filter:status" ng-click="select(item);" ng-class="{active: isActive(item)}"><a>{{item.status}}</a></li>
function MyCtrl($scope) {
$scope.dummyData = [
{id: 1, name:"Joe", status:"active"},
{id: 2, name:"Jane",status:"inactive"},
{id: 3, name:"John", status:"active"}];
$scope.setFilter = function(statusValue) {
$scope.myFilter = function(item) {
return item.status === statusValue;
};
};
};