【发布时间】:2016-11-06 19:06:03
【问题描述】:
我正在尝试使用过滤器进行分页。
有一个包含名称和国家/地区的列表。
我正在尝试按国家和字母范围过滤它们,然后按数字生成分页。我真的很坚持。任何帮助将不胜感激
字母过滤器将检索以字母范围开头的名称。例如,如果您选择第一个选项 [A - M] 将返回姓名以该字母范围开头的人
这是我的代码。 html在那边。谢谢
http://jsbin.com/cifowatuzu/edit?html,js,output
angular.module('app',['angular.filter'])
.controller('MainController', function($scope) {
$scope.selectedCountry = '';
$scope.currentPage = 1;
$scope.pageSize = 3;
$scope.pages = [];
//This should store {StartFrom and To from selected Range}
$scope.selectedRange = '';
$scope.AlphabethicalRange = [
{StartFrom: 'A', To: 'M'},
{StartFrom: 'N', To: 'Z'}
];
$scope.Countries = [
{ Name : 'USA'},
{ Name : 'Japan'},
{ Name : 'France'},
{ Name : 'Canada'},
{ Name : 'China'},
];
$scope.People = [
{ Id: 1, Name: 'Will', Country: 'USA'},
{ Id: 2, Name: 'Ed', Country: 'USA' },
{ Id: 3, Name: 'Peter', Country: 'China'},
{ Id: 4, Name: 'John', Country: 'Japan'},
{ Id: 5, Name: 'Alex', Country: 'France'},
{ Id: 6, Name: 'Jim', Country: 'France'},
{ Id: 7, Name: 'Austin', Country: 'Italy'},
{ Id: 8, Name: 'Men', Country: 'France'},
{ Id: 9, Name: 'Zike', Country: 'Canada'},
];
$scope.numberPages = Math.ceil($scope.People.length / $scope.pageSize);
$scope.init = function () {
for (i = 1; i < $scope.numberPages; i++) {
$scope.pages.push(i);
}
};
$scope.init();
});
【问题讨论】:
-
你能解释一下你想用这个字母过滤器做什么吗?
-
字母过滤器将检索以字母范围开头的名称。例如,如果您选择第一个选项 [A - M] 将返回其姓名在该字母范围内开始的人
-
好的,是
angular-filter提供的吗? -
我不这么认为,我想我需要为此创建一个自定义过滤器
-
你用 orderBy 试过了吗?
<ul ng-repeat="person in People | orderBy:'Name'">这可能无助于过滤 [A-M] 中的名称,但会按字母顺序排列它们
标签: javascript angularjs angularjs-ng-repeat angularjs-filter