我在我的Angular模块中编写了几个自定义过滤器来实现我想要的排序,例如:
Angular:
var sortByValue = function() {
return function(input) {
/*...*/
return some_boolean;
}
};
var sortByCount = function() {
return function(input) {
/*...*/
return some_boolean;
}
};
在我的HTML(jade)中,我可以这样调用不同的过滤器:
.row(ng-repeat='item in array | sortByValue')
或者
.row(ng-repeat='item in array | sortByOrder')
我希望现在添加一个按钮,可以在两种不同的排序选项之间切换。
我尝试通过定义一个新的总体筛选函数来做到这一点,该函数利用了$scope变量来跟踪切换状态(见下文),但它没有起作用。
Angular:
var myController = function($scope) {
// function called on ng-init
$scope.initialize = function() {
$scope.byValue = true;
}
};
var sortFunction = function() {
if($scope.byValue) {
return sortByValue();
} else {
return sortByCount();
}
}
我也尝试将$scope变量传递到HTML中的过滤器中,例如sortFunction:byValue,但它也不起作用。有人可以帮忙吗?谢谢!
这是一个演示 plunker @ plnkr.co/edit/altzOow7aIQhqKTN93Oe?p=preview?。
$filter
。 - charlietfl$filter
可以让你访问任何 Angular 过滤器...无论是内置的还是自定义的。因此,只需使用它来调用其中之一即可。 - charlietfl