[英]Custom Filter for angularjs pagination
我正在嘗試使用angularjs將條件應用於分頁。
該條件從函數GetParameterVisibility(x)返回。
這就是我所擁有的:
dir-paginate="x in itemsToDisplay | orderBy:'Name' | filter:textFilter | itemsPerPage: pageSize"
我想做的是基於從函數返回的布爾值的過濾器,但是還可以將文本過濾器應用於顯示的項目。
我如何應用此附加條件,該附加條件也將與文本過濾器一起使用。
例如
dir-paginate="x in itemsToDisplay | orderBy:'Name' | filter:(textFilter || GetParameterVisibility(x)) | itemsPerPage: pageSize"
提前致謝!
在應用程序模塊中創建用於處理功能的過濾器:
.filter('fvisible', ['myService',function(myService) {
return function(input) {
return myService.GetParameterVisibility(input);//or any logic with this
};
}]);
然后,您將過濾器鏈接起來,因為順序很重要,並且來自一個過濾器的數據將流向另一個過濾器。
| filter:textFilter | filter:fvisible |
使用過濾器鏈接,您可以使用或聲明過濾器。 我不太確定您要基於bool返回什么,但這就是您可以創建自己的過濾器進行處理的方式。 另外,您還必須注入getVisibility函數,因此您可以在此函數內部創建創建服務並注入以過濾可見性。
.service('myService',function(){
this.GetParameterVisibility = function(){
//
};
});
青色,感謝您的幫助,我想我快到了。 (為辯護,我通常會編寫C#代碼)
我現在有這個:
<div class="DataItem" dir-paginate="x in itemsToDisplay | orderBy:'Name' | filter:textFilter | filter:fvisible | itemsPerPage: pageSize" current-page="currentPage">
var app = angular.module('parametersApp', ['angularUtils.directives.dirPagination']);
app.controller('parametersController', function ($scope, $http) { //Code });
angular.module('parametersApp').filter('fvisible', ['myService', function (myService) {
return function (input) {
return myService.GetParameterVisibility(input);
};
}]).service('myService', function () {
this.GetParameterVisibility = function (parameter) {
if ($('#chkInAlert').is(':checked')) {
if (parameter.AlertPriority > 0) {
return true;
}
else {
return false;
}
}
else {
return true;
}
};
});
不會導致任何錯誤,這是一個額外的好處,但是它似乎也不起作用。
一個問題是它如何將對象x從我在itemsToDisplay中的dir-paginate =“ x傳遞給GetParameterVisibility函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.