angularjs - ui-bootstrap पृष्ठांकन आरंभीकरण पर वर्तमान पृष्ठ रीसेट करना




pagination angular-ui-bootstrap (4)

इस समस्या का एक समाधान मैंने गितुब से पाया और कार्यान्वित किया और पूरी तरह से काम किया।

जैसा कि अन्य उत्तरों में भी उल्लेख किया गया है, यह समस्या कुल totalItems और जब मैं पृष्ठ totalItems / n पर जाने का प्रयास करता हूं, तो कुल totalItems यह क्षण 0 हो जाता है और इस प्रक्रिया में, currentPage मान 1 हो जाता है और मैं अपने इच्छित पर नहीं जा सकता पृष्ठ। इसलिए मेरी चाल है, इससे पहले कि मैं सर्वर से डेटा कॉल करूं, मैंने कुल संख्याओं के रूप में एक बड़ी संख्या निर्धारित की है और सर्वर से डेटा प्राप्त करने के बाद, मैं कुल अपडेट का अद्यतन करता totalItems

$scope.totalItems = 1000;
QuotationService.getQuotations(url).then(function ( response ) {

     $scope.totalItems = response.data.total;
     $scope.quotations = response.data.data;
     $scope.isTableLoading = false;

});

मेरे विचार में, केवल यदि isTableLoading false , तो मैं पृष्ठांकन दिखाता हूं, अन्यथा पृष्ठांकन गलत संख्या में पृष्ठ प्रदर्शित करेगा।

<div class="text-center" ng-show="isTableLoading == false">
     <uib-pagination boundary-links="true"  
           total-items="totalItems"
           items-per-page="15" max-size="15" ng-model="currentPage"
           class="pagination-sm" previous-text="&lsaquo;"
           next-text="&rsaquo;" first-text="&laquo;" last-text="&raquo;">
     </uib-pagination>
</div>

अब सब कुछ पूरी तरह से काम कर रहा है।

मैं यूआई-बूटस्ट्रैप (कोणीय-बूटस्ट्रैप) पुस्तकालय से पृष्ठांकन निर्देश का उपयोग कर रहा हूं। मैं एक मुद्दा है जब यह आरंभ करता है। मेरा समस्या तब होती है जब मैं किसी विशिष्ट पृष्ठ पर url के माध्यम से नेविगेट करता हूं।

क्या हो रहा है कि मेरा नियंत्रक $ राज्यप्रेम से सही पृष्ठ के साथ आरंभीकृत करता है, तब पृष्ठांकन निर्देश प्रारंभिक होता है और एनजी-परिवर्तन फ़ंक्शन को ट्रिगर करता है जो पृष्ठ 1 को रीसेट कर रहा है। अब चयन-पृष्ठ का उपयोग नहीं किया जाता है, क्या है? पेज बदलने के लिए केवल उपयोगकर्ता क्लिक पर कब्जा करने का एक तरीका है? आदर्श रूप से मैं यह चाहूंगा कि नियंत्रक के समक्ष निर्देश को आरंभ कर दिया जाए ताकि मेरे पृष्ठ को रीसेट न मिले। पहले ही, आपका बहुत धन्यवाद।

यदि आवश्यक हो तो मैं कोड को शामिल कर सकता हूं, लेकिन मुझे लगता है कि मेरे प्रश्न के लिए कोड ब्लॉक की आवश्यकता नहीं है।


इसलिए मुझे कोणीय-बूटस्ट्रैप कोड में नीचे ड्रिलिंग के बाद एक समाधान मिला। उनके कोड में TotalPages पर एक घड़ी होती है जो यह जांचती है कि वर्तमान पृष्ठ कुलपेज मान से अधिक है या नहीं।

कोणीय-बूटस्ट्रैप कोड:

if ( $scope.page > value ) {
  $scope.selectPage(value);
} else {
  ngModelCtrl.$render();
}

क्या हो रहा था अगर मैंने पेज 3 पर पेज को रीफ्रेश किया (उदाहरण के लिए) मेरा नियंत्रक उस पेज के लिए आइटमों को फिर से लोड कर रहा था जिससे अस्थायी रूप से कुल-आइटम 0 हो गए और कुलपतियों की गणना 1 के रूप में की जाने लगी। इसने घड़ी और उपरोक्त कोड को ट्रिगर किया।

मेरा समाधान राज्य के समाधान में वस्तुओं को लोड करना था ताकि कुल-आइटम (और बदले में TotalPages) हमेशा सटीक हो।


यदि आप पृष्ठ लोड होने पर पृष्ठ सेट करना चाह रहे हैं, तो यहां बताए अनुसार मॉडल को लोड करें।

वेबसाइट से:

<pagination total-items="totalItems" ng-model="currentPage" ng-change="pageChanged()">
</pagination>

मुझे यकीन है कि आप पहले ही वहां देख चुके हैं, इसलिए यदि मॉडल को नियंत्रक के प्रारंभ पर ठीक से सेट नहीं किया जा रहा है, तो आपको स्पष्ट रूप से समस्याएं होने वाली हैं। ऐसा भी मामला है जहाँ यह संभवतः किसी अन्य स्थान पर अधिलेखित किया जा रहा है जहाँ आप $scope.currentPage का उपयोग कर रहे हैं। यद्यपि आप यह महसूस कर सकते हैं कि यह बिना कोड के आसान है, मैं सुझाव दूंगा कि आप जिस HTML और कोणीय नियंत्रक की बात कर रहे हैं। आशा करता हूँ की ये काम करेगा!


राज्य रिज़ॉल्यूशन का एक विकल्प एक बार ज्ञात मूल्य मॉड्यूल में कुल आइटम सेट करना होगा। वही डीलियो, वास्तव में मैं सिर्फ आपके उपरोक्त उत्तर पर टिप्पणी करना चाहता था, लेकिन मेरे पास आवश्यक बिंदु नहीं थे। स्पष्टीकरण के लिए धन्यवाद, मेरी मदद की!





angular-ui-bootstrap