Skip to content

Commit 78d8702

Browse files
committed
Fixed lazy loaded modules issue
Declared providers using forRoot so that Lazy loaded modules do not redeclare the providers
1 parent 7868255 commit 78d8702

File tree

6 files changed

+68
-42
lines changed

6 files changed

+68
-42
lines changed
Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
1-
import { NgModule } from '@angular/core';
1+
import { NgModule, ModuleWithProviders } from '@angular/core';
22
import { CommonModule } from '@angular/common';
33

4-
import { WidgetLibraryModule } from '../../widget-library/widget-library.module';
5-
6-
import { WidgetLibraryService } from '../../widget-library/widget-library.service';
7-
import { FrameworkLibraryService } from '../framework-library.service';
4+
import { JsonSchemaFormService } from '../../json-schema-form.service';
85

96
import { Bootstrap3FrameworkComponent } from './bootstrap-3-framework.component';
107

118
@NgModule({
12-
imports: [ CommonModule, WidgetLibraryModule ],
9+
imports: [ CommonModule ],
1310
declarations: [ Bootstrap3FrameworkComponent ],
1411
exports: [ Bootstrap3FrameworkComponent ],
15-
entryComponents: [ Bootstrap3FrameworkComponent ],
16-
providers: [ WidgetLibraryService, FrameworkLibraryService ]
12+
entryComponents: [ Bootstrap3FrameworkComponent ]
1713
})
18-
export class Bootstrap3FrameworkModule { }
14+
export class Bootstrap3FrameworkModule {
15+
static forRoot(): ModuleWithProviders {
16+
return {
17+
ngModule: Bootstrap3FrameworkModule,
18+
providers: [ JsonSchemaFormService ]
19+
}
20+
}
21+
}
Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
1-
import { NgModule } from '@angular/core';
1+
import { NgModule, ModuleWithProviders } from '@angular/core';
22
import { CommonModule } from '@angular/common';
33

4-
import { WidgetLibraryModule } from '../../widget-library/widget-library.module';
5-
6-
import { WidgetLibraryService } from '../../widget-library/widget-library.service';
7-
import { FrameworkLibraryService } from '../framework-library.service';
4+
import { JsonSchemaFormService } from '../../json-schema-form.service';
85

96
import { Bootstrap4FrameworkComponent } from './bootstrap-4-framework.component';
107

118
@NgModule({
12-
imports: [ CommonModule, WidgetLibraryModule ],
9+
imports: [ CommonModule ],
1310
declarations: [ Bootstrap4FrameworkComponent ],
1411
exports: [ Bootstrap4FrameworkComponent ],
15-
entryComponents: [ Bootstrap4FrameworkComponent ],
16-
providers: [ WidgetLibraryService, FrameworkLibraryService ]
12+
entryComponents: [ Bootstrap4FrameworkComponent ]
1713
})
18-
export class Bootstrap4FrameworkModule { }
14+
export class Bootstrap4FrameworkModule {
15+
static forRoot(): ModuleWithProviders {
16+
return {
17+
ngModule: Bootstrap4FrameworkModule,
18+
providers: [ JsonSchemaFormService ]
19+
}
20+
}
21+
}
Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
import { NgModule } from '@angular/core';
1+
import { NgModule, ModuleWithProviders } from '@angular/core';
22
import { CommonModule } from '@angular/common';
33

4-
import { WidgetLibraryModule } from '../widget-library/widget-library.module';
54
import { WidgetLibraryService } from '../widget-library/widget-library.service';
6-
75
import { FrameworkLibraryService } from './framework-library.service';
86

97
import { Bootstrap3FrameworkModule } from './bootstrap-3-framework/bootstrap-3-framework.module';
@@ -14,15 +12,21 @@ import { Bootstrap4FrameworkModule } from './bootstrap-4-framework/bootstrap-4-f
1412

1513
@NgModule({
1614
imports: [
17-
CommonModule, WidgetLibraryModule,
15+
CommonModule,
1816
Bootstrap3FrameworkModule, MaterialDesignFrameworkModule, Bootstrap4FrameworkModule
1917
],
2018
declarations: [ NoFrameworkComponent ],
2119
exports: [
2220
NoFrameworkComponent,
2321
Bootstrap3FrameworkModule, MaterialDesignFrameworkModule, Bootstrap4FrameworkModule
2422
],
25-
entryComponents: [ NoFrameworkComponent ],
26-
providers: [ WidgetLibraryService, FrameworkLibraryService ]
23+
entryComponents: [ NoFrameworkComponent ]
2724
})
28-
export class FrameworkLibraryModule { }
25+
export class FrameworkLibraryModule {
26+
static forRoot(): ModuleWithProviders {
27+
return {
28+
ngModule: MaterialDesignFrameworkModule,
29+
providers: [ WidgetLibraryService, FrameworkLibraryService ]
30+
}
31+
}
32+
}

src/lib/src/framework-library/material-design-framework/material-design-framework.module.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { NgModule } from '@angular/core';
1+
import { NgModule, ModuleWithProviders } from '@angular/core';
22
import { CommonModule } from '@angular/common';
33
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
44
import { FlexLayoutModule } from '@angular/flex-layout';
@@ -24,19 +24,24 @@ export const ANGULAR_MATERIAL_MODULES = [
2424
* MatToolbarModule,
2525
*/
2626

27-
import { WidgetLibraryModule } from '../../widget-library/widget-library.module';
2827
import { JsonSchemaFormService } from '../../json-schema-form.service';
2928

3029
import { MATERIAL_FRAMEWORK_COMPONENTS } from './index';
3130

3231
@NgModule({
3332
imports: [
3433
CommonModule, FormsModule, ReactiveFormsModule, FlexLayoutModule,
35-
...ANGULAR_MATERIAL_MODULES, WidgetLibraryModule
34+
...ANGULAR_MATERIAL_MODULES
3635
],
3736
declarations: [ ...MATERIAL_FRAMEWORK_COMPONENTS ],
3837
exports: [ ...MATERIAL_FRAMEWORK_COMPONENTS ],
39-
entryComponents: [ ...MATERIAL_FRAMEWORK_COMPONENTS ],
40-
providers: [ JsonSchemaFormService ]
38+
entryComponents: [ ...MATERIAL_FRAMEWORK_COMPONENTS ]
4139
})
42-
export class MaterialDesignFrameworkModule { }
40+
export class MaterialDesignFrameworkModule {
41+
static forRoot(): ModuleWithProviders {
42+
return {
43+
ngModule: MaterialDesignFrameworkModule,
44+
providers: [ JsonSchemaFormService ]
45+
}
46+
}
47+
}
Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { NgModule } from '@angular/core';
1+
import { NgModule, ModuleWithProviders } from '@angular/core';
22
import { CommonModule } from '@angular/common';
33
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
44

@@ -8,8 +8,6 @@ import { WidgetLibraryModule } from './widget-library/widget-library.module';
88
import { JsonSchemaFormComponent } from './json-schema-form.component';
99

1010
import { JsonSchemaFormService } from './json-schema-form.service';
11-
import { FrameworkLibraryService } from './framework-library/framework-library.service';
12-
import { WidgetLibraryService } from './widget-library/widget-library.service';
1311

1412
@NgModule({
1513
imports: [
@@ -19,9 +17,16 @@ import { WidgetLibraryService } from './widget-library/widget-library.service';
1917
declarations: [ JsonSchemaFormComponent ],
2018
exports: [
2119
JsonSchemaFormComponent, FrameworkLibraryModule, WidgetLibraryModule
22-
],
23-
providers: [
24-
JsonSchemaFormService, FrameworkLibraryService, WidgetLibraryService
2520
]
2621
})
27-
export class JsonSchemaFormModule { }
22+
export class JsonSchemaFormModule {
23+
static forRoot(): ModuleWithProviders {
24+
return {
25+
ngModule: JsonSchemaFormModule,
26+
providers: [ ]
27+
.concat([JsonSchemaFormService])
28+
.concat(FrameworkLibraryModule.forRoot().providers)
29+
.concat(WidgetLibraryModule.forRoot().providers)
30+
}
31+
}
32+
}
Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import { NgModule } from '@angular/core';
1+
import { NgModule, ModuleWithProviders } from '@angular/core';
22
import { CommonModule } from '@angular/common';
33
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
44

55
import { OrderableDirective } from '../shared/orderable.directive';
66

7-
import { WidgetLibraryService } from './widget-library.service';
87
import { JsonSchemaFormService } from '../json-schema-form.service';
98

109
import { BASIC_WIDGETS } from './index';
@@ -14,6 +13,13 @@ import { BASIC_WIDGETS } from './index';
1413
declarations: [ ...BASIC_WIDGETS, OrderableDirective ],
1514
exports: [ ...BASIC_WIDGETS, OrderableDirective ],
1615
entryComponents: [ ...BASIC_WIDGETS ],
17-
providers: [ JsonSchemaFormService, WidgetLibraryService ]
16+
providers: [ JsonSchemaFormService ]
1817
})
19-
export class WidgetLibraryModule { }
18+
export class WidgetLibraryModule {
19+
static forRoot(): ModuleWithProviders {
20+
return {
21+
ngModule: WidgetLibraryModule,
22+
providers: [ JsonSchemaFormService ]
23+
}
24+
}
25+
}

0 commit comments

Comments
 (0)