【问题标题】:nested Filter json Using Checkboxes with AngularJS使用带有 AngularJS 的复选框的嵌套过滤器 json
【发布时间】:2017-04-21 12:07:44
【问题描述】:

我有一个 Json 数据,我需要以角度创建嵌套过滤器搜索。如果你们能帮助我,因为我是新手,我试过了,但我发现有困难。

【问题讨论】:

  • 你应该做一个小提琴

标签: angularjs json checkbox filter


【解决方案1】:

我没有你的 css,但在高级别它应该像 THISmultilevel 过滤器参考 THIS

单击复选框后,我将使用 addToFilter 函数将过滤器类别添加到我的数组之一。

HTML

<input  type="checkbox" ng-checked="item.checked" ng-model="item.checked" ng-click="addToFilter(item.node.category)"/> {{ item.node.category }}

HTML

代码 filter:categoryFilter 将根据所选类别过滤数组中的记录。

<div ng-repeat="item in nodes | filter:categoryFilter | orderBy:'node.location' | groupBy:['node.location'] ">
    <h2 ng-show="item.group_by_CHANGED">{{item.node.location}}</h2>
        <ul>
            <li>{{item.node.title}}</li>
         </ul></div>

JS

此js代码是选中时从数组中添加所选类别,未选中时删除。

$scope.filtersApplied =[];
$scope.addToFilter = function(category)
{
  var i = $.inArray(category.trim(), $scope.filtersApplied);
  console.log(category);
  if (i > -1) {
     $scope.filtersApplied.splice(i, 1);
   } else {
     $scope.filtersApplied.push(category.trim());
   }
}
$scope.categoryFilter = function(node) {
   if ($scope.filtersApplied.length > 0) {
     if ($.inArray(node.node.category.trim(), $scope.filtersApplied) < 0)
     return;
   }
 return node;
}

** 请忽略我的分组代码。我只是想模拟你在图片中显示的内容。

使用 CSS 更新 SAMPLE

【讨论】:

  • 您好,您提供了我需要的确切方式,但您只是复制了 Json 数据,但我需要每次都调用它,因为它是动态数据,并且每次都会更改。来到颜色部分,有什么方法可以为位置名称生成随机类,因为我需要为不同的位置分配不同的颜色。请告诉我。非常感谢您的帮助。
  • Angular 支持两种方式绑定,因此当您使用新数据更改变量时,所有过滤器和分组都会自动为您更新。对于 COLOR CSS,您可以创建自定义类并根据索引应用。为此,您需要先进行分组并识别标头并跟踪索引。根据索引,您可以应用 CSS,它会在过滤时保持修复。我已经为你更新了样本。有很多方法可以实现它。
  • 您提供的方式非常有效。我只有一个问题,有什么办法可以根据每个位置的商店名称按字母顺序排列,现在商店标题以混乱的方式显示。@user3249448。感谢您的努力。
  • 是的,有可能。只需让您的 $scope.groupedData 也对 node.title 进行排序。更新jsfiddle.net/1yh4pwL1/1
  • 您好几个月前,您为我的问题提供了正确的解决方案,解决了我在这个小提琴jsfiddle.net/1yh4pwL1/1 中的主要搜索过滤器问题,但我遇到的问题是添加了一个过滤器称为子类别,每个商店都有多个值。我试过了,但我得到了重复的值,因为子类别有多个值。所以请您检查一次并提供一些解决方案。这是 JSON URL:dev.flydulles.com/store-directory?section=iad。我们正在测试中,所以我们没有向所有商店添加子类别
猜你喜欢
  • 1970-01-01
  • 2017-01-15
  • 1970-01-01
  • 2014-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-01
  • 1970-01-01
相关资源
最近更新 更多