Herkes ben .forRoot ile birden iç içe özellik modülleri hiyerarşi yapısı nasıl bana aydınlatabilir misiniz özellik modülleri hiyerarşi içinde .forRoot() kullanmak() çağrıları? Örneğinnasıl
ne böyle modülleri varsa:
- MainModule
- SharedModule
- FeatureModuleA
- FeatureModuleA1
- FeatureModuleA2
- FeatureModuleB
Tüm özellik modüllerini bir .forRoot() statik işlevi vardır.
Bir şekilde ".forRoot() işlevlerini" aktarma "ile FeatureModuleA nasıl tanımlamalıyım?) FeatureModuleA işlevini
@NgModule({
imports: [
//- I can use .forRoot() calls here but this module not the root module
//- I don't need to import sub-modules here, FeatureA only a wrapper
//FeatureModuleA1.forRoot(), //WRONG!
//FeatureModuleA2.forRoot(), //WRONG!
],
exports: [
//I cannot use .forRoot() calls here
FeatureModuleA1,
FeatureModuleA2
]
})
class FeatureModuleA {
static forRoot(): ModuleWithProviders {
return {
//At this point I can set any other class than FeatureModuleA for root
//So lets create a FeatureRootModuleA class: see below!
ngModule: FeatureModuleA //should be: FeatureRootModuleA
};
}
}
Sonra kök kullanımı için başka bir sınıf oluşturabilir (forRoot içinde ayarlayın:
@NgModule({
imports: [
//Still don't need any sub module within this feature module
]
exports: [
//Still cannot use .forRoot() calls but still need to export them for root module too:
FeatureModuleA1,
FeatureModuleA2
]
})
class FeatureRootModuleA { }
Ama yapabilirim "transferi" .forRoot() bu dahilinde çağrıları nasıl özel ModuleClass?
ben her orada için .forRoot() benim kök MainModule doğrudan tüm alt modülleri almak ve çağırmanız gerekir Görüldüğü üzere:
@NgModule({
imports: [
FeatureModuleA1.forRoot(),
FeatureModuleA2.forRoot(),
FeatureModuleA.forRoot(),
SharedModule.forRoot()
]
})
class MainModule { }
Haklı mıyım? Cevap vermeden önce bu dosyanın bir göz atın lütfen:
https://github.com/angular/material2/blob/master/src/lib/module.ts
Ben resmi açısal ekip tarafından tutulan bu repo bildiği gibi. Bu yüzden yukarıdakileri özel bir MaterialRootModule modülünde tüm .forRoot() çağrılarını içe aktararak çözüyorlar. Kendi kök modülüm için nasıl uygulanacağını anlamıyorum. kök ve .forRoot gerçekten burada demek neyi? Bu, gerçek web projesine değil, pakete göre mi? Genellikle forRoot
genelde aktarılmış olması gerekirken bu nedenle
, biz, yöntem yalnızca kök (uygulama) modülü çağrısında gerektiğini belirtmek için bir (Kongre tarafından)forRoot
yöntemi ekleyin bir 'forRoot' yöntemi oluşturmak ve kullanmak istediğiniz neden emin değilim .. belki bu yardımcı olur: https://angular.io/docs/ts/latest/guide/ngmodule.html – mxiiEvet. Resmi belgeleri okudum. Birden çok yuvalanmış modülle karmaşık projelerin nasıl kesileceği konusunda hiçbir şey yoktur. ForRoot'u tam olarak oluşturmak ve kullanmak istiyorum çünkü sağlayıcı singletonları tüm proje içinde yalnızca bir kez gösterilmeli. – ggabor
Tamam, örnekte hiç sağlayıcı yok. :) – mxii