Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 按ng repeat中的每个项目筛选出_Angularjs - Fatal编程技术网

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;
            };
        };
    };