Angular service providedIn VS forRoot
up vote
0
down vote
favorite
I'd like to know if these code
are equivalent or not.
Can I use providedIn
with the same result of
forRoot ?
Thanks in advance
@Injectable(
providedIn: 'root'
)
export class MyService
constructor()
VS
@Injectable()
export class MyService
constructor()
@NgModule(
imports:
)
export class MyModule
static forRoot(): ModuleWithProviders
return
ngModule: MyModule,
providers: [
MyService
]
;
@NgModule(
imports: [
MyModule.forRoot()
],
bootstrap: [AppComponent]
)
export class AppModule
[I would still keep my MyModule for single use with the providedId singleton services]
angular
add a comment |
up vote
0
down vote
favorite
I'd like to know if these code
are equivalent or not.
Can I use providedIn
with the same result of
forRoot ?
Thanks in advance
@Injectable(
providedIn: 'root'
)
export class MyService
constructor()
VS
@Injectable()
export class MyService
constructor()
@NgModule(
imports:
)
export class MyModule
static forRoot(): ModuleWithProviders
return
ngModule: MyModule,
providers: [
MyService
]
;
@NgModule(
imports: [
MyModule.forRoot()
],
bootstrap: [AppComponent]
)
export class AppModule
[I would still keep my MyModule for single use with the providedId singleton services]
angular
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I'd like to know if these code
are equivalent or not.
Can I use providedIn
with the same result of
forRoot ?
Thanks in advance
@Injectable(
providedIn: 'root'
)
export class MyService
constructor()
VS
@Injectable()
export class MyService
constructor()
@NgModule(
imports:
)
export class MyModule
static forRoot(): ModuleWithProviders
return
ngModule: MyModule,
providers: [
MyService
]
;
@NgModule(
imports: [
MyModule.forRoot()
],
bootstrap: [AppComponent]
)
export class AppModule
[I would still keep my MyModule for single use with the providedId singleton services]
angular
I'd like to know if these code
are equivalent or not.
Can I use providedIn
with the same result of
forRoot ?
Thanks in advance
@Injectable(
providedIn: 'root'
)
export class MyService
constructor()
VS
@Injectable()
export class MyService
constructor()
@NgModule(
imports:
)
export class MyModule
static forRoot(): ModuleWithProviders
return
ngModule: MyModule,
providers: [
MyService
]
;
@NgModule(
imports: [
MyModule.forRoot()
],
bootstrap: [AppComponent]
)
export class AppModule
[I would still keep my MyModule for single use with the providedId singleton services]
angular
angular
asked Nov 11 at 18:28
user3887366
1213
1213
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
up vote
0
down vote
accepted
providedIn
will directly injects the service
based on the value - if its 'root' it will directly inject in root module
- this will help you to stop adding your service
in module [providers]
Angular will inject the service in the module
- If in case you are using Lazy loading modules - angular will create new injectors whenever you load other modules
If you use Lazy loading is better to go with forRoot()
injection on the modules and make sure your service
doesn't create multiple injectors
Hope this helps you - Happy coding !!
Check this link for more info
So just in case of lazy loading are you sure using provideIn don't give you a singleton if you can build a simple running example I'd be most grateful :) thanks for the help
– user3887366
Nov 11 at 20:12
You can check that link for further clarification - thanks :)
– Rahul
Nov 12 at 3:47
add a comment |
up vote
1
down vote
Using providedIn
vs providers
:
providedIn
is the new Angular way of doing DI.providedIn
was brought since Angular 6The official name is "Tree-shakeable providers" - instead of module providing all its services, it is now the service itself declaring where it should be provided
Using
providedIn: 'root'
removes the need to import the library module at all, we can simply inject needed services and it just works
Yes, in this wayprovidedIn
is better thanforRoot
Because it is more tree shakeable.
– Pace
Nov 11 at 18:48
add a comment |
up vote
1
down vote
Yes, forRoot
and provideIn
both are equivalent since both will create the only and only one singleton for the app. Even though it being loaded in lazy loaded component.
Refer this nice article on it - https://medium.com/@chrishouse/when-to-use-angulars-forroot-method-400094a0ebb7
add a comment |
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
accepted
providedIn
will directly injects the service
based on the value - if its 'root' it will directly inject in root module
- this will help you to stop adding your service
in module [providers]
Angular will inject the service in the module
- If in case you are using Lazy loading modules - angular will create new injectors whenever you load other modules
If you use Lazy loading is better to go with forRoot()
injection on the modules and make sure your service
doesn't create multiple injectors
Hope this helps you - Happy coding !!
Check this link for more info
So just in case of lazy loading are you sure using provideIn don't give you a singleton if you can build a simple running example I'd be most grateful :) thanks for the help
– user3887366
Nov 11 at 20:12
You can check that link for further clarification - thanks :)
– Rahul
Nov 12 at 3:47
add a comment |
up vote
0
down vote
accepted
providedIn
will directly injects the service
based on the value - if its 'root' it will directly inject in root module
- this will help you to stop adding your service
in module [providers]
Angular will inject the service in the module
- If in case you are using Lazy loading modules - angular will create new injectors whenever you load other modules
If you use Lazy loading is better to go with forRoot()
injection on the modules and make sure your service
doesn't create multiple injectors
Hope this helps you - Happy coding !!
Check this link for more info
So just in case of lazy loading are you sure using provideIn don't give you a singleton if you can build a simple running example I'd be most grateful :) thanks for the help
– user3887366
Nov 11 at 20:12
You can check that link for further clarification - thanks :)
– Rahul
Nov 12 at 3:47
add a comment |
up vote
0
down vote
accepted
up vote
0
down vote
accepted
providedIn
will directly injects the service
based on the value - if its 'root' it will directly inject in root module
- this will help you to stop adding your service
in module [providers]
Angular will inject the service in the module
- If in case you are using Lazy loading modules - angular will create new injectors whenever you load other modules
If you use Lazy loading is better to go with forRoot()
injection on the modules and make sure your service
doesn't create multiple injectors
Hope this helps you - Happy coding !!
Check this link for more info
providedIn
will directly injects the service
based on the value - if its 'root' it will directly inject in root module
- this will help you to stop adding your service
in module [providers]
Angular will inject the service in the module
- If in case you are using Lazy loading modules - angular will create new injectors whenever you load other modules
If you use Lazy loading is better to go with forRoot()
injection on the modules and make sure your service
doesn't create multiple injectors
Hope this helps you - Happy coding !!
Check this link for more info
edited Nov 11 at 18:56
answered Nov 11 at 18:50
Rahul
9381315
9381315
So just in case of lazy loading are you sure using provideIn don't give you a singleton if you can build a simple running example I'd be most grateful :) thanks for the help
– user3887366
Nov 11 at 20:12
You can check that link for further clarification - thanks :)
– Rahul
Nov 12 at 3:47
add a comment |
So just in case of lazy loading are you sure using provideIn don't give you a singleton if you can build a simple running example I'd be most grateful :) thanks for the help
– user3887366
Nov 11 at 20:12
You can check that link for further clarification - thanks :)
– Rahul
Nov 12 at 3:47
So just in case of lazy loading are you sure using provideIn don't give you a singleton if you can build a simple running example I'd be most grateful :) thanks for the help
– user3887366
Nov 11 at 20:12
So just in case of lazy loading are you sure using provideIn don't give you a singleton if you can build a simple running example I'd be most grateful :) thanks for the help
– user3887366
Nov 11 at 20:12
You can check that link for further clarification - thanks :)
– Rahul
Nov 12 at 3:47
You can check that link for further clarification - thanks :)
– Rahul
Nov 12 at 3:47
add a comment |
up vote
1
down vote
Using providedIn
vs providers
:
providedIn
is the new Angular way of doing DI.providedIn
was brought since Angular 6The official name is "Tree-shakeable providers" - instead of module providing all its services, it is now the service itself declaring where it should be provided
Using
providedIn: 'root'
removes the need to import the library module at all, we can simply inject needed services and it just works
Yes, in this wayprovidedIn
is better thanforRoot
Because it is more tree shakeable.
– Pace
Nov 11 at 18:48
add a comment |
up vote
1
down vote
Using providedIn
vs providers
:
providedIn
is the new Angular way of doing DI.providedIn
was brought since Angular 6The official name is "Tree-shakeable providers" - instead of module providing all its services, it is now the service itself declaring where it should be provided
Using
providedIn: 'root'
removes the need to import the library module at all, we can simply inject needed services and it just works
Yes, in this wayprovidedIn
is better thanforRoot
Because it is more tree shakeable.
– Pace
Nov 11 at 18:48
add a comment |
up vote
1
down vote
up vote
1
down vote
Using providedIn
vs providers
:
providedIn
is the new Angular way of doing DI.providedIn
was brought since Angular 6The official name is "Tree-shakeable providers" - instead of module providing all its services, it is now the service itself declaring where it should be provided
Using
providedIn: 'root'
removes the need to import the library module at all, we can simply inject needed services and it just works
Using providedIn
vs providers
:
providedIn
is the new Angular way of doing DI.providedIn
was brought since Angular 6The official name is "Tree-shakeable providers" - instead of module providing all its services, it is now the service itself declaring where it should be provided
Using
providedIn: 'root'
removes the need to import the library module at all, we can simply inject needed services and it just works
answered Nov 11 at 18:40
TheUnreal
6,2492682156
6,2492682156
Yes, in this wayprovidedIn
is better thanforRoot
Because it is more tree shakeable.
– Pace
Nov 11 at 18:48
add a comment |
Yes, in this wayprovidedIn
is better thanforRoot
Because it is more tree shakeable.
– Pace
Nov 11 at 18:48
Yes, in this way
providedIn
is better than forRoot
Because it is more tree shakeable.– Pace
Nov 11 at 18:48
Yes, in this way
providedIn
is better than forRoot
Because it is more tree shakeable.– Pace
Nov 11 at 18:48
add a comment |
up vote
1
down vote
Yes, forRoot
and provideIn
both are equivalent since both will create the only and only one singleton for the app. Even though it being loaded in lazy loaded component.
Refer this nice article on it - https://medium.com/@chrishouse/when-to-use-angulars-forroot-method-400094a0ebb7
add a comment |
up vote
1
down vote
Yes, forRoot
and provideIn
both are equivalent since both will create the only and only one singleton for the app. Even though it being loaded in lazy loaded component.
Refer this nice article on it - https://medium.com/@chrishouse/when-to-use-angulars-forroot-method-400094a0ebb7
add a comment |
up vote
1
down vote
up vote
1
down vote
Yes, forRoot
and provideIn
both are equivalent since both will create the only and only one singleton for the app. Even though it being loaded in lazy loaded component.
Refer this nice article on it - https://medium.com/@chrishouse/when-to-use-angulars-forroot-method-400094a0ebb7
Yes, forRoot
and provideIn
both are equivalent since both will create the only and only one singleton for the app. Even though it being loaded in lazy loaded component.
Refer this nice article on it - https://medium.com/@chrishouse/when-to-use-angulars-forroot-method-400094a0ebb7
answered Nov 11 at 18:42
Sunil Singh
6,1122626
6,1122626
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53251849%2fangular-service-providedin-vs-forroot%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown