What are the difference between @Inject and @Injectable?
@Inject() - Angular 2
Angular 2 @Inject() is a special technique for letting Angular know that a parameter must be injected.
Stayed Informed - Why @Injectable() in Angular 2?
Example as,
import { Inject } from '@angular/core'; import { Http } from '@angular/http'; class UserService { users:Array<any>; constructor(@Inject(Http) http:Http) { //TODO AS PER YOU. } }
@Injectable() - Angular 2
@Injectable() marks a class as available to an injector for instantiation. An injector reports an error when trying to instantiate a class that is not marked as @Injectable().
How to use Dependency Injection (DI) correctly in Angular 2?
The basics Steps of Dependency injection,
1. A class with @Injectable() to tell angular 2 that it’s to be injected “UserService”.
2. A class with a constructor that accepts a type to be injected.
Example, UserService marked as @Injectable as,
import {Injectable, bind} from 'angular2/core'; import {Http} from 'angular2/http'; @Injectable() /* This is #Step 1 */ export class UserService { constructor(http: Http/* This is #Step 2 */ ) { this.http = Http; } }
I
hope you are enjoying with this post! Please share with you friends. Thank
you!!