यहाँ पर छानने के कारण सूची में परिवर्तन के लिए बाध्य:कोणीय पृष्ठांकन अपडेट नहीं हो जब है परिदृश्य एक इनपुट पाठ बॉक्स
मैं कोणीय जे एस और बूटस्ट्रैप यूआई के साथ एक ASP.NET MVC साइट का उपयोग कर रहा हूँ। मेरे पास एक इनपुट खोज बॉक्स के माध्यम से उस सूची पर फ़िल्टरिंग, AngularJS को नियंत्रक कॉल के माध्यम से खिलाए गए डेटा द्वारा पॉप्युलेट की गई गतिशील उल सूची है। सूची को अंकन (यूआई बूटस्ट्रैप नियंत्रण) के माध्यम से भी नियंत्रित किया जाता है जिसे मैंने 100 या उससे अधिक वस्तुओं की सूची के लिए प्रति पृष्ठ 10 परिणाम दिखाने के लिए सेटअप किया है। इस सूची को खोज बॉक्स में उपयोगकर्ता प्रकार के रूप में फ़िल्टर किया गया है, हालांकि मैं पेजिनेशन को भी अपडेट करना चाहता हूं, इसलिए निम्न उदाहरण पर विचार करें:
सूची में आइटम के 10 पृष्ठ (100 आइटम) हैं, उपयोगकर्ता कुछ टेक्स्ट टाइप करते हैं इनपुट सर्च बॉक्स में जो सूची को 20 या उससे कम आइटम तक फ़िल्टर करता है, इसलिए पेजिनेशन को 10 पृष्ठों से दो पृष्ठों में अपडेट किया जाना चाहिए।
मुझे लगता है कि इसे कहीं भी $ घड़ी सेटअप होना चाहिए, शायद इसे फ़िल्टर किए जाने के बाद सूची आइटम पर और फिर पेजिनेशन पेज गिनती अपडेट करें, हालांकि मैं एंगुलरजेएस के लिए काफी नया हूं, तो क्या कोई मुझे बता सकता है कि यह कैसे किया जा सकता था?
बहुत बहुत धन्यवाद। मैं नीचे मेरी कोड पोस्ट किया है: क्योंकि अपने पृष्ठांकन श्रृंखलित फिल्टर का एक संयोजन है
<div data-ng-app="dealsPage">
<input type="text" data-ng-model="cityName" />
<div data-ng-controller="DestinationController">
<ul>
<li data-ng-repeat="deals in destinations | filter: cityName |
startFrom:currentPage*pageSize | limitTo:pageSize">{{deals.Location}}</li>
</ul>
<br />
<pagination rotate="true" num-pages="noOfPages" current-page="currentPage"
max-size="maxSize" class="pagination-small" boundary-links="true"></pagination>
</div>
var destApp = angular.module('dealsPage', ['ui.bootstrap', 'uiSlider']);
destApp.controller('DestinationController', function ($scope, $http) {
$scope.destinations = {};
$scope.currentPage = 1;
$scope.pageSize = 10;
$http.get('/Deals/GetDeals').success(function (data) {
$scope.destinations = data;
$scope.noOfPages = data.length/10;
$scope.maxSize = 5;
});
});
destApp.filter('startFrom', function() {
return function (input, start) {
start = +start; //parse to int
return input.slice(start);
};
});
बहुत बहुत धन्यवाद! यह अच्छी तरह से काम किया। :) मुझे बस इतना करना था कि कोड के इस लाइन को अपने समाधान में जोड़ना था: '$ scope.noOfPages = isNaN ($ scope.filteredDestinations.length/10)? 200: $ scope.filteredDestinations.length/10; ' ताकि पृष्ठ शुरू होने पर, बूस्टस्ट्रैप यूआई पेजिनेशन नियंत्रण प्रस्तुत किया जाएगा, अन्यथा यह $ scope.noOfPages चर के कारण 'NaN' मान होने के कारण प्रस्तुत नहीं करेगा। – Ben
बहुत बढ़िया, मदद करने में खुशी हुई। StackOverflow में आपका स्वागत है, बीटीडब्ल्यू। अगर आपको अपने प्रश्न का उत्तर दिया गया तो आपको जवाब स्वीकार करने पर विचार करना चाहिए। :) – Langdon
इसके बारे में क्षमा करें, मैंने अभी यह किया है। फिर से धन्यवाद! – Ben