वास्तव में दो अलग-अलग समस्याएं हैं जो झिलमिलाहट का कारण बन सकती हैं और आप इनमें से एक या दोनों का सामना कर सकते हैं।
समस्या 1: एनजी-क्लोक बहुत देर से लागू किया जाता है
इस समस्या को इस पृष्ठ पर दिए गए उत्तरों में से कई में descibed के रूप में हल किया गया है ताकि यह सुनिश्चित किया जा सके कि सिर में AngularJS लोड है। देखिये ngCloak doc :
सर्वोत्तम परिणाम के लिए, कोणीय.js स्क्रिप्ट को html फ़ाइल के मुख्य भाग में लोड किया जाना चाहिए; वैकल्पिक रूप से, सीएसएस नियम (ऊपर) को आवेदन की बाहरी स्टाइलशीट में शामिल किया जाना चाहिए।
समस्या 2: एनजी-क्लोक को भी जल्द ही हटा दिया जाता है
यह समस्या तब होती है जब आप अपने पृष्ठ पर बहुत सीएसएस होते हैं, जिसमें एक दूसरे के ऊपर नियम लागू होते हैं और शीर्ष परत लागू होने से पहले सीएसएस की गहरी परतें चमकती हैं।
जोड़ने में जवाब में jQuery के समाधान style="display:none"
अपने तत्व में से इस मुद्दे को तब तक हल करते हैं जब तक कि शैली को देर से हटा दिया जाता है (वास्तव में ये समाधान आपकी समस्याओं को हल करते हैं)। हालाँकि, यदि आप अपने HTML में सीधे शैलियों को नहीं जोड़ना पसंद करते हैं, तो आप उसी परिणाम का उपयोग करके प्राप्त कर सकते हैं ng-show
।
सवाल से उदाहरण के साथ शुरू:
<ul ng-show="foo != null" ng-cloak>..</ul>
अपने तत्व में एक अतिरिक्त एनजी-शो नियम जोड़ें:
<ul ng-show="isPageFullyLoaded && (foo != null)" ng-cloak>..</ul>
(आपको रखने की आवश्यकता है ng-cloak
समस्या 1 से बचने के )।
फिर अपने app.run सेट में isPageFullyLoaded
:
app.run(['$rootScope', function ($rootScope) {
$rootScope.$safeApply = function (fn) {
$rootScope.isPageFullyLoaded = true;
}
}]);
ध्यान रखें कि आप जो कर रहे हैं, उसके आधार पर app.run सेट करने के लिए सबसे अच्छी जगह हो सकती है या नहीं भी isPageFullyLoaded
। महत्वपूर्ण बात यह सुनिश्चित करना है किisPageFullyLoaded
जो कुछ भी आप नहीं करना चाहते हैं, वह उपयोगकर्ता के सामने प्रकट होने के लिए तैयार है के बाद सच हो जाता है।
ऐसा लगता है कि समस्या 1 समस्या वह समस्या है जिसे ओपी मार रहा है, लेकिन अन्य लोग यह जान रहे हैं कि समाधान काम नहीं करता है या केवल आंशिक रूप से काम करता है क्योंकि वे समस्या 2 या इसके बजाय भी मार रहे हैं ।
महत्वपूर्ण नोट: दोनों एनजी-क्लोक पर समाधान लागू करना सुनिश्चित करें बहुत देर हो चुकी है और जल्द ही हटा दी गई है। इन समस्याओं में से केवल एक को सुलझाने से लक्षणों से राहत नहीं मिल सकती है।