2015-02-09 4 views
7

मेरे पृष्ठ पर मेरे पास एनजी के अंदर एक div है- अगर लोड करने के लिए कई स्क्रिप्ट हैं, यानी जब पृष्ठ पूरी तरह से लोड नहीं होता है। Div दिखाई देता है। जब तक पेज/कोणीय पूरी तरह से लोड नहीं होता है तब तक मैं इसे कैसे छिपा सकता हूं।एनजी के अंदर एचटीएमएल तत्व अगर पृष्ठ लोड हो रहा है तो

<div id = "menu" ng-if="someCondition" > 
    <ul class="user-menu"> 
     <li> 
      menu item 1 
     </li> 
     <li> 
      menu item 2 
     </li> 
    </ul> 
</div> 

उत्तर

17

ng-cloak के लिए प्रलेखन पर नज़र डालें।

प्रलेखन से

:

ngCloak निर्देश संक्षेप में अपने कच्चे (uncompiled) रूप में ब्राउज़र द्वारा प्रदर्शित किया जा रहा है, जबकि अपने आवेदन लोड कर रहा है से कोणीय एचटीएमएल टेम्पलेट को रोकने के लिए प्रयोग किया जाता है। से बचने के लिए इस निर्देश का उपयोग करें HTML टेम्पलेट डिस्प्ले के कारण अवांछनीय झिलमिलाहट प्रभाव।

इसके अलावा

:

निर्देश तत्व को लागू किया जा सकता है, लेकिन प्राथमिकता दी उपयोग ब्राउज़र को देखने के प्रगतिशील प्रतिपादन की अनुमति के लिए पेज के छोटे हिस्से के लिए कई ngCloak निर्देशों को लागू करने के लिए है।

<div id = "menu" ng-if="someCondition" ng-cloak> 
    <ul class="user-menu"> 
     <li> 
      menu item 1 
     </li> 
     <li> 
      menu item 2 
     </li> 
    </ul> 
</div> 

यह कैसे काम करता:

निम्नलिखित शैलियों (Angular.js फ़ाइल अनिवार्य रूप से एक .css फ़ाइल के रूप में काम कर रहा है) दस्तावेज़ पर लागू होते हैं जब Angular.js भरी हुई है (की सिफारिश की है जो अपने पृष्ठ के सिर में होना)। जब कोणीय वास्तव में डोम लोड पर चलता है, तो यह एनजी-क्लोक विशेषता को हटा देता है, तत्वों को अनदेखा करता है।

[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak { 
    display: none !important; 
} 

आप अपने दस्तावेज़ के शीर्ष में कोणीय लोड नहीं है, तो आप शैलियों मैन्युअल सिर को जोड़ सकते हैं और सब कुछ अभी भी काम करेगा। बस

<style type="text/css"> 
    [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak { 
     display: none !important; 
    } 
</style> 
1

इस तथ्य यह है कि आप केवल एक छोटा सा कोड स्निपेट उपलब्ध लेकिन मेरा अनुमान है कि नियंत्रक अभी तक प्रारंभ नहीं किया गया है (हुड कोणीय अपने HTML डोम के द्वारा पार्स और जब यह उसके अनुसार कार्य करेगा किया जा रहा है की वजह से एक अनुमान है कहा जाता है।)

यदि आप एक साधारण मार्ग का उपयोग करते हैं तो यह पूरी तरह से इसे रोक देगा।

वैकल्पिक रूप से आप सीएसएस डिस्प्ले के साथ अपनी सभी एनजी-अगर शर्तों को रख सकते हैं: कोई नहीं; और उसके बाद एप लोड हो जाने के बाद उन सभी के माध्यम से फिर से भरें

+0

एनजी-क्लोक शरीर तत्व पर लागू होता है तो आपका विकल्प स्वचालित रूप से होता है। –

+0

यह मानते हुए कि कोणीय ने वास्तव में प्रश्न पृष्ठ/कोणीय प्रश्न को लोड किया है, इसलिए यदि कोणीय अभी भी डाउनलोड हो रहा है (धीमी इंटरनेट कनेक्शन, असम्पीडित कोणीय, एक ही सीडीएन से कई अन्य स्क्रिप्ट, आदि और स्थानीय नेटवर्क पर परीक्षण सर्वर) तब एनजी-क्लोक तब तक नहीं चल पाएगा जब तक कि कोणीय बूटस्ट्रैप डाउनलोड नहीं हो जाता है और पार्स किया गया हो। एक साधारण मार्ग का उपयोग करना (इम्हो) सबसे साफ तरीका होगा क्योंकि इस तरह से टेम्पलेट लोड नहीं हो सकता है जब तक कि सब कुछ शुरू नहीं किया जाता है, अन्यथा एक हाथ से लुढ़का हुआ तरीका अभी भी काम कर सकता है। –

+0

यदि आप कोणीय शामिल करते हैं।दस्तावेज के सिर में जेएस (अनुशंसित) यह स्वचालित रूप से करेगा (कोणीय "रन" से पहले, जो डोम लोड होने के बाद होता है। यह वही करता है जो आप सुझाव देते हैं (प्रदर्शन जोड़ना: कोई भी शैली जो किसी भी तत्व को प्रभावित करती है एक एनजी-क्लोक विशेषता, और उसके बाद डीओएम को कोणीय द्वारा पार्स किए जाने के बाद शैली को हटा दिया जाता है। –

1

सशर्त ऑपरेटर का उपयोग करें।

<div id="menu" ng-if="someCondition.length > 0 ? true : false"> 
    <ul class="user-menu"> 
     <li> 
      menu item 1 
     </li> 
     <li> 
      menu item 2 
     </li> 
    </ul> 
</div> 
संबंधित मुद्दे