Javascript 如果选中复选框,则将结果筛选到前5个最高分
我对angularjs是新手。 我的目标是过滤学生的记录,如果勾选了Top 5标记复选框,则限制为:5。 如果未选中复选框Top 5 Mark,则返回满足其他筛选器的所有记录 我还有其他搜索框来过滤记录。但这已经超出了目前的范围 我的过滤代码现在是这样的Javascript 如果选中复选框,则将结果筛选到前5个最高分,javascript,angularjs,checkbox,angular-filters,Javascript,Angularjs,Checkbox,Angular Filters,我对angularjs是新手。 我的目标是过滤学生的记录,如果勾选了Top 5标记复选框,则限制为:5。 如果未选中复选框Top 5 Mark,则返回满足其他筛选器的所有记录 我还有其他搜索框来过滤记录。但这已经超出了目前的范围 我的过滤代码现在是这样的 <div class="checkbox"> <label> <input type="checkbox"/> Top 5 Marks </label> </div&
<div class="checkbox">
<label>
<input type="checkbox"/>
Top 5 Marks
</label>
</div>
<tr data-ng-repeat="item in students | filter:query | orderBy: orderName">
<td>{{item.name}}</td>
<td>{{item.mark}}</td>
<td>{{item.grade}}</td>
</tr>
这很简单,您可以使用以下代码完成:
<div ng-controller="MyCtrl">
<label>Top 5</label>
<input type="checkbox" ng-model="checked" ng-change="changeLimit(5)"/>
<br/> <br/>
<ul>
<li ng-repeat="student in students | orderBy: 'mark': true | limitTo: limitNumber">
<span>{{student.name}}</span>
<span>{{student.mark}}</span>
</li>
</ul>
</div>
我在这篇文章上附上了一个例子
此外,我还建议您阅读有关过滤器的信息。如果我的回答对您有用吗?我愿意接受任何反馈:
function MyCtrl($scope) {
$scope.students = [
{ name: "Peter", mark: 10 },
{ name: "John", mark: 9 },
{ name: "Hevery", mark: 7 },
{ name: "Archy", mark: 10 },
{ name: "Michael", mark: 4 },
{ name: "Wats", mark: 4 },
{ name: "Richard", mark: 8 },
{ name: "Ivan", mark: 6 },
];
$scope.limitNumber = $scope.students.length;
$scope.changeLimit = function(limit){
if($scope.checked){
$scope.limitNumber = limit;
}
else{
$scope.limitNumber = $scope.students.length;
}
};
};