【问题标题】:Filter multiple Angularjs with array on ng-click在 ng-click 上使用数组过滤多个 Angularjs
【发布时间】:2017-01-22 11:14:38
【问题描述】:

我有两个对象。 //首先是项目

{
 catId : [1, 2, 3],
 name : "My name is George"
},
{
 catId : 1,
 name : "My name is Bob"
},
{
 catId : 2,
 name : "My name is Trump"
}

对于 catId json

{
 Id : 1,
 name : "Hi"
},
{
 Id : 3,
 name : "world"
}

我希望用户在 ng-repeat 之后单击类别 json 并在使用 category.Id 过滤我的项目对象后获取类别 ID。

https://plnkr.co/edit/x2O3Q4AA33xwbeqFupAM?p=preview

【问题讨论】:

标签: javascript angularjs json


【解决方案1】:

这样试试

// Code goes here

var app = angular.module('app', []);

app.controller('myController', function($scope){
  $scope.items = [
          {
            Name: "My name is George",
            catId: [ 1, 3, 7 ]
          },
          {
            Name: "My name is Bob",
            catId: 1
          },
          {
            Name: "My name is Trump",
            catId: 2
          }];

  $scope.cats = [
          {
            Name: "Hello",
            Id: 1
          },
          {
            Name: "World",
            Id: 3
          }];
          
          $scope.setCatFilter = function(id){
           $scope.catFilter = id; 
          }
          
          
})
/* Styles go here */

span {
  width: 20px;
  display: inline-block;
  cursor: pointer;
  padding: 5px;
  text-align: center;
  margin-right: 5px;
  background: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="myController">
    <div>Filter items</div>
    <span ng-repeat="cat in cats" ng-click="setCatFilter(cat.Id)">{{cat.Id}}</span>
    <div>Category</div>
    <input type="text" ng-model = "serachName">
    <div ng-repeat="item in items | filter:{catId:catFilter,Name:serachName}">
      {{item.Name}}
    </div>
  </div>

【讨论】:

  • 谢谢老兄,我也用你的代码搜索了名称过滤器,但它不起作用。过滤器:{catId:catFilter}:searchWithName
猜你喜欢
  • 2015-05-17
  • 2016-06-16
  • 2019-06-16
  • 2015-06-21
  • 1970-01-01
  • 2014-08-17
  • 1970-01-01
  • 2018-04-14
  • 2018-01-28
相关资源
最近更新 更多