2017-06-08 17 views
25

मैं अन्य मॉड्यूल में AppModule के अंदर बनाए गए घटक का उपयोग करने का प्रयास कर रहा हूं। मैं निम्नलिखित त्रुटि मिलती है, हालांकि:कोणीय 2 'घटक' ज्ञात तत्व नहीं है

"Uncaught (in promise): Error: Template parse errors:

'contacts-box' is not a known element:

  1. If 'contacts-box' is an Angular component, then verify that it is part of this module.
  2. If 'contacts-box' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.

मेरे परियोजना संरचना काफी सरल है: Overall project structure

मैं पृष्ठों निर्देशिका है, जहां प्रत्येक पृष्ठ अलग मॉड्यूल में रखा जाता है में अपने पृष्ठों (जैसे ग्राहकों मॉड्यूल) रखने के लिए और प्रत्येक मॉड्यूल में कई घटक होते हैं (जैसे ग्राहक-सूची-घटक, ग्राहक-जोड़-घटक आदि)। मैं उन घटकों के अंदर अपने ContactBoxComponent का उपयोग करना चाहता हूं (इसलिए उदाहरण के लिए ग्राहकों-ऐड-घटक के अंदर)।

जैसा कि आप देख सकते हैं कि मैंने विजेट्स निर्देशिका के अंदर संपर्क-बॉक्स घटक बनाया है, इसलिए यह मूल रूप से AppModule के अंदर है। मैंने app.module.ts पर ContactBoxComponent आयात जोड़ा और इसे AppModule की घोषणा सूची में डाल दिया। यह काम नहीं करता था इसलिए मैंने अपनी समस्या को गुमराह किया और संपर्क सूची में संपर्कबॉक्स कॉम्पोनेंट भी जोड़ा। मदद नहीं की मैंने ग्राहकों में ContactBoxComponent को डालने का प्रयास किया है और फिर एक दूसरे में (विभिन्न मॉड्यूल से) लेकिन मुझे एक त्रुटि मिली है जिसमें कई घोषणाएं हैं।

मुझे क्या याद आ रही है?

उत्तर

40

ये मुझे 5 त्रुटिएं हैं जब मुझे ऐसी त्रुटि मिली।

  • क्या आप सुनिश्चित हैं कि नाम सही है? (घटक में परिभाषित चयनकर्ता को भी जांचें)
  • मॉड्यूल में घटक घोषित करें?
  • यदि यह किसी अन्य मॉड्यूल में है, तो घटक निर्यात करें?
  • यदि यह किसी अन्य मॉड्यूल में है, तो उस मॉड्यूल को आयात करें?
  • क्ली को पुनरारंभ करें?

I also tried putting ContactBoxComponent in CustomersAddComponent and then in another one (from different module) but I got an error saying there are multiple declarations.

आप दो बार एक घटक की घोषणा नहीं कर सकते हैं।

+0

आपका चरणों मेरी मदद नहीं था लेकिन शायद ऐसा इसलिए है क्योंकि मैं बहुत कोणीय 2 के लिए नया हूँ, इसलिए मैं उन्हें जवाब देंगे और शायद हम समाधान को एकसाथ समझ लेंगे। मुझे यकीन है कि नाम सही है, मैंने ऐप मॉड्यूल में घटक घोषित किया, मैंने ऐप मॉड्यूल में घटक निर्यात किया और क्ली को पुनरारंभ किया। मैंने अपने ग्राहकों AdDomponent में AppModule आयात करने का भी प्रयास किया लेकिन इसके परिणामस्वरूप त्रुटि: अधिकतम कॉल स्टैक आकार पार हो गया (मुझे लगता है कि हम कोणीय 2 में AppModule आयात नहीं करते हैं)। – Aranha

+2

आपको अपने घटक को एक अलग मॉड्यूल में घोषित और निर्यात करना चाहिए, ऐप मॉड्यूल में नहीं। इसके बाद आपको अपने घटक का उपयोग करने के लिए हर मॉड्यूल में इस नए मॉड्यूल को आयात करना चाहिए। –

+1

ठीक है, अब मैं इसे प्राप्त करता हूं। एकमात्र सवाल यह है कि: जब मैं नव निर्मित मॉड्यूल (विजेट्स मॉड्यूल कहता हूं) आयात करता हूं तो यह अंदर घोषित घटकों को aaaaaall लोड करेगा, है ना? यह कुछ उपर है लेकिन शायद मैं कुछ गलत समझ रहा हूं। मैं निश्चित रूप से ContactBoxModule बना सकता हूं लेकिन यह एक छोटे से घटक के लिए बहुत कुछ है। कोई संकेत? – Aranha

3

मुझे बस एक ही समस्या थी। यहां पोस्ट किए गए कुछ समाधानों को आजमाने से पहले, आप यह जांचना चाहेंगे कि घटक वास्तव में काम नहीं करता है या नहीं। मेरे लिए, त्रुटि मेरे आईडीई (वेबस्टॉर्म) में दिखाया गया था, लेकिन यह पता चला कि जब मैंने ब्राउज़र में इसे चलाया तो कोड पूरी तरह से काम करता था।

टर्मिनल को बंद करने के बाद (जो एनजी सेवा चला रहा था) और ने अपना आईडीई पुनरारंभ किया, संदेश दिखाना बंद कर दिया।

+0

समस्या विचार-विशिष्ट है। मुझे वेबस्टॉर्म के साथ एक ही समस्या है। वेबस्टॉर्म को कोणीय-क्ली के साथ किए गए परिवर्तनों के लिए सूचित नहीं किया गया है, इसलिए आपको किसी नए घटक को 'देखने' के लिए आईडीई को पुनरारंभ करना होगा! – skiabox

+0

मुझे वीएस कोड के साथ एक ही समस्या है लेकिन आईओनिक 2 के साथ। यह एक पृष्ठ में यह काम करता है। एक घटक में त्रुटि ** आयन- * ज्ञात तत्व नहीं है **। मैंने ** आयनिक सेवा ** को रोकने के लिए आपके सुझाव की कोशिश की है और आईडीई को पुनरारंभ किया है, लेकिन कुछ भी काम नहीं करता है। क्या आप इसके लिए एक और समाधान जानते हैं? वैसे - कोड वैसे भी काम करता है। –

संबंधित मुद्दे