नीचे एक प्रविष्टि जोड़कर मॉड्यूल app.module.ts में आयात किए जाते हैं,

@NgModule({
  declarations: [
    AppComponent,
    HomeComponent,
    DirectoryComponent,
    FilterPipe,
    LoggingService
  ],
  imports: [
    FormsModule,
    BrowserModule,
    HttpClientModule,
    routing
  ],
  providers: [],
  bootstrap: [AppComponent]
})

लेकिन RouterModule का उपयोग सीधे ../src/app/app.routes.ts में किया जाता है, जैसा कि नीचे दिखाया गया है,

import {Routes, RouterModule} from "@angular/router";
export const routes:Routes = [
    /* Each route will be an object {}*/
    {path: 'directory', component: DirectoryComponent},
    {path: '',          component: HomeComponent}
];
export const routing: ModuleWithProviders = RouterModule.forRoot(routes);

@NgModule(imports: [..]) में RouterModule की कोई प्रविष्टि नहीं है।


1) क्या कोणीय मॉड्यूल आयात करने के विभिन्न तरीके हैं?

2) क्या कोणीय मॉड्यूल का आयात टाइपप्रति मॉड्यूल के आयात से अलग है?

1
overexchange 17 नवम्बर 2017, 03:08

2 जवाब

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

अपने routes.ts में आप routes नामक स्थिरांक बना रहे हैं, इसे RouterModule निर्दिष्ट कर रहे हैं और इसे निर्यात कर रहे हैं।

अपने ऐप में, आप routes स्थिरांक आयात कर रहे हैं, जो किसी अन्य की तरह ही मॉड्यूल का एक संदर्भ है:

@NgModule(
 .... imports: [
         routing, // here you are using the const
      ],
....
)

और आप इसे इस लाइन पर असाइन कर रहे हैं:

 export const routing: ModuleWithProviders = RouterModule.forRoot(routes);

इसके बजाय आप निर्यात किए गए routes का उपयोग कर सकते हैं और इसे अपने ऐप.मॉड्यूल में उपयोग कर सकते हैं:

@NgModule(
 .... imports: [
         RouterModule.forRoot(routes),
      ],
....

पहला इसे इस्तेमाल करने से पहले इसे एक वेरिएबल (वेल कॉन्स्ट) को असाइन कर रहा है।

टाइपस्क्रिप्ट मॉड्यूल एंगुलर मॉड्यूल से अलग हैं। टाइपस्क्रिप्ट मॉड्यूल आपको टाइपस्क्रिप्ट फ़ाइलों के बीच टाइपस्क्रिप्ट ऑब्जेक्ट साझा करने की अनुमति देता है। आप उन्हें हर जगह इस्तेमाल करते हैं, यहां तक ​​कि गैर कोणीय टाइपस्क्रिप्ट में भी। वे import { something } from 'myfile.ts' हैं और इसे जावास्क्रिप्ट में स्थानांतरित कर दिया जाता है ES5 को स्टेटमेंट की आवश्यकता होती है, और ठीक ES6 आयात की तरह। मेरे अनुभव में बहुत से लोग इन्हें मॉड्यूल के रूप में संदर्भित नहीं करते हैं।

कोणीय मॉड्यूल कोणीय घटकों, सेवाओं, निर्देशों और पाइपों आदि के मॉड्यूलर भाग होते हैं जिन्हें बंडल किया जाता है ताकि संकलक को पता चले कि क्या उनके साथ करने के लिए, और आप आसानी से उनसे कोणीय ऐप्स बना सकते हैं। अगर कोई कोणीय और मॉड्यूल के बारे में बात कर रहा है तो संभव है कि वे इनके बारे में बात कर रहे हों क्योंकि टाइपस्क्रिप्ट मॉड्यूल बहुत मौलिक हैं - प्रत्येक टाइपस्क्रिप्ट फ़ाइल में शीर्ष पर एकाधिक आयात होंगे।

5
Joe 17 नवम्बर 2017, 03:29

एक प्रविष्टि है, आपने अभी-अभी इसका नाम routing const रखा है। तो आपके मामले में routing वास्तव में RouterModule.forRoot(routes); है जिसका अर्थ है कि यह RouterModule. है

मुझे लगता है कि कोणीय टीम इसे यहां अच्छी तरह से समझाती है https://angular.io/guide/router

और कोई टाइपस्क्रिप्ट मॉड्यूल नहीं है। केवल कोणीय मॉड्यूल। आपके मामले में आपने कोणीय मॉड्यूल को const नाम routing से संदर्भित किया है और आपने इसे निर्यात किया है।

2
DrNio 17 नवम्बर 2017, 03:18