我需要能够根据类别对复选框进行分组,并且只显示已选择项目的组并隐藏其他项目。
但是根据我的代码,它会显示和隐藏但会检查所选类别的所有复选框。我是否会对其进行修改以解决此问题?
我明白这是因为我要回来但是
这就是我所拥有的:
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;
}
答案 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));
表达式,以使它们具有单独的状态。