Angularjs通过单击catogery筛选产品

Angularjs通过单击catogery筛选产品,angularjs,Angularjs,你能给我一个过滤产品的代码吗?点击分类菜单。下面是HTML、JSON和JS代码 类别HTML: <ul> <li ng-repeat="cat in allData"><a ng-click="catFun(cat.catogery)" class="list-group-item">{{cat.catogery}}</a></li> JS代码: $scope.filtered = {}; $scope.catFun = functi

你能给我一个过滤产品的代码吗?点击分类菜单。下面是HTML、JSON和JS代码

类别HTML:

<ul>
<li ng-repeat="cat in allData"><a ng-click="catFun(cat.catogery)" class="list-group-item">{{cat.catogery}}</a></li>
JS代码:

$scope.filtered = {};
$scope.catFun = function(catVal){
    $scope.filtered = catVal;
};

$scope.filterBycat = function(item){
    if($scope.filtered){
        return $scope.filtered === Object;
    }else{
        return item;
    }
}

用以下功能替换filterByCat

  $scope.getFilter = function(){
    return {"catogery":$scope.filtered}
  }
并且认为:

<div ng-repeat="product in allData | filter:getFilter"> ... </dive>
。。。

下面是一个示例代码,该示例代码位于角度过滤器上,它需要一个数组作为输入。数据不是数组,而是对象。在能够使用过滤器之前,首先需要正确格式化数据

如果您不关心密钥内容,可以使用以下选项:

$scope.allData = Object.keys(d).map(function(key){ return d[key] })

这是您的钢笔的一个修改版本,可以举例说明这一点:

您能在上面添加一个示例吗?@tarun mishra:您能把您的问题说得更具体些吗?你的问题是什么?您的代码中当前不起作用的是什么?你试了什么?你们很难理解什么?@ThomasGuillory请检查代码笔上的项目这是一个大项目,所以我添加了一个小部分。我使用json服务获取数据,您可以在angularjs service@ThomasGuillory中看到我想要过滤产品,请点击分类菜单,请检查我是否在代码笔上添加了项目,我通过我创建的服务获取数据,您可以在js中看到。使用您的代码,我得到了如下错误:预期的数组,但收到:{“1”:{“id”:“1”,“catogery”:“men”}
<div ng-repeat="product in allData | filter:getFilter"> ... </dive>
$scope.allData = Object.keys(d).map(function(key){ return d[key] })