Why @Injectable ()?
@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 ().
Injectors are also responsible for instantiating components. At the run-time the injectors can read class metadata in the JavaScript code and use the constructor parameter type information to determine what things to inject.
Example as,
import { Injectable, InjectionToken } from '@angular/core'; import { Http, Response } from '@angular/http'; @Injectable() export class UserService { constructor(private _http: Http) { } getAPIUsers(apiUrl) { return this._http.get(apiUrl).map((data: Response) => data.json()); } }
Why @Inject()?
Angular 2 @Inject() is a special technique for letting Angular know that a parameter must be injected.
Example as,
import { Inject} from '@angular/core'; import { Http, Response } from '@angular/http'; class UserService { users: Array<any>; constructor( @Inject(Http) _http: Http) { } }
Angular2 - Related Concepts
When use @Inject()? | When Use @Injectable ()? | @Injectable() vs. @Inject() ? |
How to use Dependency Injection (DI) correctly in Angular 2? | Dependency Injection (DI) in Angular 2? |
I hope you are enjoying with this post! Please share with you friends. Thank you!!