使用group by并显示隐藏所选复选框的组div

时间:2015-07-14 08:04:42

标签: angularjs

我需要能够根据类别对复选框进行分组,并且只显示已选择项目的组并隐藏其他项目。

但是根据我的代码,它会显示和隐藏但会检查所选类别的所有复选框。我是否会对其进行修改以解决此问题?

我明白这是因为我要回来但是

这就是我所拥有的:

HTML:

<div ng-controller="dataController">
<div>
<!--<ul ng-repeat="(key, value) in properties | groupBy: 'name'" ng-show='(properties |  filter: filterByCategory)'">-->
 <ul ng-repeat="(key,value) in filtered=(properties  | filter:filterByCategory| groupBy: 'name') ">

  <li>Group name: <strong>{{ key }}</strong></li>

          <div  ng-repeat="prop in value">
            <label>
                        <input type="checkbox" ng-model="filter[key]"/>
                        <span>{{prop.Property}}</span>
            </label>
          </div>
 </ul>

JS:

$scope.filter = {};
$scope.filterByCategory = function (prop) {



        return $scope.filter[prop.name] || noFilter($scope.filter);
    };

     function noFilter(filterObj) {
        for (var key in filterObj) {

            if (filterObj[key]) {

                return false;
            }
        }
        return true;
    }  

1 个答案:

答案 0 :(得分:1)

ng-repeat prop in value key上的ng-model复选框,但使用已分组的ng-model复选框ng-model

这意味着一个组的所有复选框共享相同的public static List<T> ToObjectList<T>(this DataTable table,Func<DataRow,T> convert) { List<T> lst = new List<T>(); foreach (DataRow row in table.Rows) lst.Add(convert(row)); return lst; } 表达式,因此具有相同的范围属性 - 检查一个当然会检查所有其他属性。

我无法确切地告诉您要使用过滤器对象实现什么,但是您需要为复选框使用单独的var list = myDataTable.ToObjectList(dr=>new Person(dr)); 表达式,以使它们具有单独的状态。