2013-01-07 21 views
10

को प्रभावित करता है?AngularJS पेजिंग orderBy केवल किसी को भी सही दिशा में मुझे बात कर सकते हैं जिस तरह से पेजिंग और orderBy कोणीय में एक साथ काम ठीक करने के लिए एक तरह से यह पता लगाने के लिए प्रदर्शित पेज

वर्तमान में, मैं यह कर सकते हैं orderBy और पेज डेटा [] के परिणाम, लेकिन orderBy फिल्टर केवल प्रत्येक पृष्ठ को व्यक्तिगत रूप से प्रभावित करता है।

उदाहरण के लिए, यदि मैं आईडी द्वारा रिवर्स ऑर्डर में सॉर्ट करता हूं, तो पेज 1 10-1 सूचीबद्ध करेगा, और पृष्ठ 2 15-11 की सूची देगा, क्योंकि 15 से शुरू होने और दूसरे पृष्ठ के अंत तक 1 तक जाने के विपरीत ।

मैं एक बुनियादी बेला यहाँ http://jsfiddle.net/ZbMsR/

यहाँ मेरी नियंत्रक है:

function MyCtrl($scope) { 
    $scope.currentPage = 0; 
    $scope.pageSize = 10; 
    $scope.orderBy = "-appId"; 
    $scope.data = [ 
     {'appId': 1}, {'appId': 2}, {'appId': 3}, {'appId': 4}, {'appId': 5}, {'appId': 6}, {'appId': 7}, {'appId': 8}, {'appId': 9},{'appId': 10}, {'appId': 11}, {'appId': 12}, {'appId': 13}, {'appId': 14}, {'appId': 15} 
]; 

    $scope.numberOfPages=function(){ 
     return Math.ceil($scope.data.length/$scope.pageSize);     
    }; 
} 

//We already have a limitTo filter built-in to angular, 
//let's make a startFrom filter 
app.filter('startFrom', function() { 
    return function(input, start) { 
     start = +start; //parse to int 
     return input.slice(start); 
    } 
}); 

यहाँ मेरी दृश्य के संबंधित भाग है

<strong>Sort By:</strong> <a ng-click="orderBy = 'appId'; reverse=!reverse">Newest</a> 
<ul> 
    <li ng-repeat="item in data | startFrom:currentPage*pageSize | limitTo:pageSize | orderBy:orderBy:reverse"> 
     {{item.appId}} 
    </li> 
</ul> 

उत्तर

38

आप पूरा है, तो क्लाइंट-साइड पेजिंग, फिर आप फ़िल्टर के क्रम को बदल सकते हैं:

<li ng-repeat="item in data | orderBy:orderBy:reverse | startFrom:currentPage*pageSize | limitTo:pageSize "> 

है कि तुम क्या उम्मीद है?

+0

हा क्या एक साधारण फिक्स –

+0

सुंदर! कोड का एक टन लिखने के लिए नीचे डूबने वाला था। ओह! –

+0

क्या आप कृपया बता सकते हैं कि यह परिवर्तन क्यों काम करता है? – Anamadeya

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^