2016-09-18 16 views
6

में नेस्टेड घटकों की घोषणा कैसे करें Angular2 tutorial में एक विवरण घटक इसे @NgModule में जोड़कर पेश किया जाता है।Angular2

इसके बजाय, मैं इसे बाहरी घटक (AppComponent) द्वारा किसी भी तरह से आयात करना चाहता हूं, ताकि केवल बाहरी घटक आंतरिक घटक को संदर्भित कर सके।

मैं यह नहीं समझ सकता कि इसे कैसे किया जाए। पुराने उदाहरण directives संपत्ति का संदर्भ लेते हैं, लेकिन directivesComponentMetadtaType प्रकार में मौजूद नहीं है। तो यह

import { HeroDetailComponent } from './hero-detail.component'; 

@Component({ 
    selector: 'my-app', 
    [..] 
    directives: [HeroDetailComponent] 
}) 

उत्तर

4

आप एक मॉड्यूल के declarations: [] निर्देश और घटकों जोड़ने के लिए काम नहीं करता।
यदि आप किसी घटक का उपयोग करने में सक्षम होने के लिए केवल एक घटक चाहते हैं, तो एक मॉड्यूल बनाएं जिसमें केवल दो घटक शामिल हों।

@NgModule({ 
    imports: [BrowserModule], 
    declarations: [AppComponent, FooComponent, BarDirective], 
    ... 
}) 
+0

आप सही हो सकता है लेकिन आप अनिवार्य रूप से कह रहे हो कि मुझे क्या करना चाहते हो पाना संभव नहीं है जिस तरह से मैं चाहता हूँ? –

+0

मैंने समझाया कि "किसी भी तरह इसे आयात करना" जैसा दिख सकता है। Angular2 फ़ाइनल में आपको मॉड्यूल का उपयोग करने की आवश्यकता है और यह एक घटक, निर्देश या पाइप को किसी अन्य घटक को ज्ञात करने का एकमात्र तरीका है। –

+0

@ KlasMellbourn यह बिल्कुल ठीक नहीं है कि वह क्या कह रहा है। यह सच है कि आप किसी अन्य घटक में एक घटक घोषित नहीं कर सकते हैं। इसलिए घोषणा को बाहरी मॉड्यूल में ले जाया जाना चाहिए, जो अभी भी ठीक रहेगा क्योंकि अन्य मॉड्यूल/घटकों को इस बाहरी मॉड्यूल के बारे में पता नहीं चलेगा, यह बिल्कुल आपके पुराने बाहरी घटक घोषणा के रूप में है। – tibbus

0

आप यह घोषणाओं मेटाडाटा साथ की घोषणा के रूप में नीचे दिखाया गया है चाहिए,

import { HeroDetailComponent } from './hero-detail.component'; 
@NgModule({ 
    imports:  [ BrowserModule ], 
    declarations: [ AppComponent,HeroDetailComponent], //<----here 
    providers: [], 
    bootstrap: [ AppComponent ] 
}) 
+2

यह वही तरीका नहीं है जिसे मैं करना चाहता हूं। मैं बाहरी घटक का उपयोग कर बाहरी घटक में आंतरिक घटक को घोषित करना चाहता हूं। '@ NgModule' घोषणा स्पष्ट नहीं करती है कि क्या उपयोग कर रहा है। लेकिन शायद मैं जो चाहता हूं वह असंभव है। –