Comments (1)
Hi, @patriceo!
Great to hear the repo helps you out!
The AuthModule
is an eagerly-loaded module, since it's imported in the AppModule
. which means it has dependency to the rest of the application. This really means we don't need to import the SharedModule in the AuthModule, but as far as services goes, even lazy-loaded modules have access to them, and here's why: Angular creates a single, shared instance of the service through it's DI system. These singleton services are accessible from the root the application, which means any module have access to them. This is because services are app-scoped. You want to add the application-wide services in the core module to make them available everywhere.
There are however use-cases for services inside the SharedModule
.
The SharedModule
is the perfect place to declare reusable components. There is however a problem when we're dealing with services inside those components. Angular creates their own local instance of service inside every lazy-loaded module, which basically means we don't have access to the CoreModule'
services in the SharedModule'
components. This will probably result in a circular dependency error. But we need access to services inside the shared components as well. Luckily, Angular has an awesome feature called ModuleWithProviders
. By importing the SharedModule
in the AppModule
and running the forRoot()
method, every other component lazy-loaded or not, will have the same access to those services as well.
Best,
Mathis
from angular-folder-structure.
Related Issues (20)
- CoreModule Question HOT 3
- The Card layout not updated after card flipped HOT 1
- Should update to Angular V11
- Should fix console warnings
- Small refactoring needed
- Update Angular to version 12
- Fix linting errors
- Create flippable card effect using angular instead of external lib.
- Cant login
- Angular 13 update
- Angular 14 update
- Enable strictTemplates
- eums folder in the core HOT 1
- Module documentation link is wrong HOT 1
- Roadmap 2019-08-20 HOT 1
- Add continous integration to GitHub Pages with Travis CI
- @ngrx/store HOT 2
- Theme preference HOT 3
- Location of Layout directory/ies HOT 4
- Update to newest version of Angular HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from angular-folder-structure.