प्रतिपादन करते समय स्पिनर लोड हो रहा है मेरे पास कुछ टैब वाले एक पृष्ठ हैं और प्रत्येक टैब में बड़ी संख्या में कोणीय बाइंडिंग हैं। This नमूना पृष्ठ है जहां मुझे समस्या का सामना करना पड़ रहा है। प्रत्येक टैब को प्रस्तुत करने में लगभग 10 सेकंड लगते हैं।कोणीय टैब
तो मैंने टैब रेंडर करते समय लोडिंग स्पिनर देने की योजना बनाई। इसलिए मैंने टैब पर क्लिक के दौरान लोडिंग स्पिनर दिखाने की योजना बनाई और अंत में स्पिनर को हटा दिया ($last
) एनजी-दोहराना।
टैब पर एनजी क्लिक में मैं कताई लोडर
<ul>
<li ng-repeat="tab in tabs"
ng-class="{active:isActiveTab(tab.url)}"
ng-click="onClickTab(tab)">{{tab.title}}
</li>
</ul>
सक्रिय नियंत्रक में
$scope.onClickTab = function (tab) {
showLoader();
$scope.currentTab = tab.url;
}
एनजी-दोहराने की जांच करने के पूरा हो गया है मैं निर्देश
.directive('onFinishRender', function ($timeout) {
return {
restrict: 'A',
link: function (scope, element, attr) {
if (scope.$last === true) {
$timeout(function() {
scope.$emit('ngRepeatFinished');
});
}
}
}
});
$scope.$on('ngRepeatFinished', function (ngRepeatFinishedEvent) {
removeLoader();
});
नीचे का इस्तेमाल किया है
शोलोडर और निकालने वाला लोडर सरल कार्य है जो एक सरल लोडिंग स्पिन वाले div को जोड़ और हटा देता है नेर।
function showLoader() {
$('body').append('<div class="loader"></div>');
}
function removeLoader() {
$('.loader').fadeOut(function() {
$(this).remove();
});
}
अपेक्षित परिणाम:। स्पिनिंग लोडर जब टैब पर क्लिक किया और एनजी-दोहराने खत्म होने तक दिखाई दिखाया जा सकता है (यानी क्लिक किया टैब पूरी तरह से renders)
वास्तविक परिणाम: लोडर नहीं दिखाया गया है उन्हें क्लिक करने पर टैब और यह लगभग ng-repaet के अंत में दिखाई देता है और सेकंड के अंश के लिए दिखाई देता है। Here आप कहा व्यवहार देख सकते हैं। मुझे लगता है कि पेज कोणीय बाइंडिंग प्रक्रिया के कारण स्पिनर को दिखाने में सक्षम नहीं है जो पेज फ्रीज बनाता है।
क्या कोई इसे हल करने में मेरी सहायता कर सकता है?
मेरा उत्तर सही है क्योंकि यह डेटा बाइंडिंग के कारण लोड फ्लिकर के साथ इस सटीक मुद्दे को हल करने वाले एंगुलर के लेखक द्वारा लिखे गए एसओ थ्रेड से सोर्स किया गया है।मैंने प्रस्तावित 2 समाधानों के अलावा, मैं उन स्थानों पर 1 तरीके डेटा बाइंडिंग का उपयोग करने का भी सुझाव दे सकता हूं, जहां आपको 2 तरीके डेटा बाध्यकारी की आवश्यकता नहीं है (यदि आप अधिकतर लोगों की तरह हैं तो आपको अपने अधिकांश ऐप के माध्यम से केवल 1 तरीके डेटा बाध्यकारी की आवश्यकता है यदि सभी यह)। यह आसानी से {{:: member.name}} –
कार्यशील डेमो और अधिक महत्वपूर्ण रूप से, मेरे उत्तर में जोड़ा गया सही समाधान जैसे आपके डेटा बाध्य अभिव्यक्तियों के अंदर एक डबल कोलन शामिल करके किया जा सकता है। उस बक्षीस को छोड़ दो! –
मुझे लगता है कि ओपी सभी उत्तरों को पढ़ सकता है और फिर तय कर सकता है कि कौन सा व्यक्ति अपने आप से बक्षीस (यदि कोई है) पुरस्कार देता है? –