在AngularJS中,可以通过自定义过滤器来实现带有参数的动态排序函数。以下是一个示例:
HTML代码:
Name
Age
{{person.name}}
{{person.age}}
AngularJS代码:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.people = [
{name: 'John', age: 25},
{name: 'Jane', age: 30},
{name: 'Bob', age: 20}
];
$scope.sortBy = function(propertyName) {
$scope.reverse = ($scope.propertyName === propertyName) ? !$scope.reverse : false;
$scope.propertyName = propertyName;
};
$scope.customSort = function(person) {
if ($scope.propertyName === 'name') {
return person.name;
} else if ($scope.propertyName === 'age') {
return person.age;
}
};
});
在上述代码中,我们使用了AngularJS的orderBy过滤器来实现排序功能。在表头的th元素中,我们绑定了ng-click指令,当点击表头时,会调用sortBy函数来设置排序属性和排序顺序。在customSort函数中,我们根据排序属性来返回相应的比较值,以实现动态排序。
注意:在实际项目中,可以根据需求进行进一步的扩展和优化。