मैं वर्तमान में एंगुलर 2 प्रोजेक्ट पर काम कर रहा हूं। मैंने दो घटकों को लागू किया (1. शीर्षलेख और 2. पृष्ठ सामग्री प्रदर्शित करें)। अगर मैं सेवा खोलता हूं, तो मैं लॉगिन/पंजीकरण से शुरू करता हूं। इस समय, मैं अन्य सभी मेनू आइटम छिपाना चाहता हूं। अगर मैं लॉग-इन हूं, तो मैं सभी मेनू आइटम दिखाना चाहता हूं।

वर्तमान में, मैं मेनू आइटम दिखाने और छिपाने के लिए *ngIf का उपयोग कर रहा हूं, जो वास्तव में काम करता है। मेरी समस्या यह है कि यदि मैं पृष्ठ शुरू करता हूं और मैं लॉग-इन नहीं हूं, तो मेनू आइटम नहीं हैं (यह ठीक है)। हालांकि, अगर मैं लॉगिन करता हूं, तो केवल पृष्ठ सामग्री वाला कंटेनर सामग्री बदल रहा है, न कि मेनू बार ...

वर्तमान में, मैं जाँचता हूँ कि मैं लॉग इन हूँ या नहीं:

<div *ngIf="user != null">
...menu items...
</div>

यह काम करता है अगर मैं पूरे पृष्ठ को पुनः लोड करता हूं - लेकिन मुझे लगता है कि मैन्युअल रीफ्रेशिंग के बिना वास्तविक समय में मेनू आइटम को प्रदर्शित/छिपाने का एक अच्छा तरीका होना चाहिए?

क्या आप कृपया मेरी मदद कर सकते हैं कि मैं इस मुद्दे को कैसे हल कर सकता हूं?

1
CodingMole 19 जुलाई 2017, 23:52
.@CodingMole- कृपया प्रासंगिक कोड के साथ अधिक विवरण प्रदान करें, आपने जो प्रयास किया उसके उदाहरण और प्रासंगिक स्क्रीनशॉट। आपको अपने प्रश्न को बेहतर तरीके से तैयार करना होगा।
 – 
Chetan Arvind Patil
19 जुलाई 2017, 23:55
angularjs जावास्क्रिप्ट पर आधारित कोणीय है, अर्थात: संस्करण 1x। Angular को टाइपस्क्रिप्ट में फिर से लिखा गया है, अर्थात: संस्करण 2 और 4। कृपया अपने प्रश्न के लिए उपयुक्त उत्पाद नाम/शब्दावली और टैग का उपयोग करें।
 – 
Igor
19 जुलाई 2017, 23:55
जवाब देने के लिए शुक्रिया। मेरे पास एक शीर्षलेख है जहां मैं मेनू आइटम प्रदर्शित करता हूं। अगर मैं मुख्य फ्रेम (अन्य घटक) में लॉगिन करता हूं, तो मैं अधिक विशिष्ट उपयोगकर्ता संबंधित मेनू आइटम प्रदर्शित करना चाहता हूं। वर्तमान में, मैं जाँचता हूँ कि मैं लॉग इन हूँ या नहीं:
...मेनू आइटम...
यह तब काम करता है जब मैं पूरे पृष्ठ को पुनः लोड करता हूँ - लेकिन मुझे लगता है कि मैन्युअल रीफ्रेशिंग के बिना वास्तविक समय में मेनू आइटम प्रदर्शित/छिपाने का एक अच्छा तरीका होना चाहिए?
 – 
CodingMole
20 जुलाई 2017, 00:02
लॉगिन के बाद एक सामान्य सेवा का उपयोग करके user चर को रीसेट करें। यह दिखाए बिना कि user घटक और सेवाओं से कैसे जुड़ा है, कोई भी आपके लिए कुछ नहीं कर सकता क्योंकि हम सभी अनुमान लगा रहे होंगे कि आपके पास क्या है।
 – 
Igor
20 जुलाई 2017, 00:12
क्या आप अपने कोड नमूने के साथ प्लंकर बना सकते हैं?
 – 
RKG
20 जुलाई 2017, 00:32

1 उत्तर

सबसे बढ़िया उत्तर

आपको संभवत: एक वैश्विक उपयोगकर्ता सेवा बनानी चाहिए जो उपयोगकर्ता की स्थिति को ट्रैक करती है और वह घटक सदस्यता ले सकते हैं ताकि उपयोगकर्ता के लॉग इन होने या न होने के संबंध में हमेशा वास्तविक समय अपडेट हो सके।

यदि आप उस समय एनजीआईएफ समाधान पसंद नहीं करते हैं, तो आपके पास कुछ विकल्प हैं: आप एक पूरी तरह से नया घटक बना सकते हैं और इसे एक ऐसे मार्ग में प्रदर्शित कर सकते हैं जो उपयोगकर्ता के लॉग इन होने पर ही पहुंच योग्य हो, या आप कुछ ऐसा कर सकते हैं जैसे बनाना एक मेनू आइटम सरणी जो आपके नेविगेशन मेनू आइटम को नियंत्रित करती है और एक ngfor चलाती है।

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

1
Zhen Lu 20 जुलाई 2017, 02:49