Angular 2 @Injectable () vs. @Inject() ?

Angular 2 @Injectable() vs. @Inject() ?

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!!
ANIL SINGH

Hey! I'm Anil Singh. I author this blog. I'm Active Blogger, Programmer. I love learning new technologies, programming, blogging and participating the forum discussions more...
http://www.code-sample.com
http://www.code-sample.xyz

You Might Also Like
Post a Comment
www.code-sample.com/. Powered by Blogger.