Controlling service instance creation and injection with NgModule

In a stark departure from Angular 1.x, Angular 2 features a hierarchical injection scheme. This has a substantial number of implications, and one of the more prominent one is the ability to control when, and how many, services are created.


The code, links, and a live example of this are available at

Getting ready

Suppose you begin with the following simple application:

[app/root.component.ts] import {Component} from '@angular/core'; @Component({ selector: 'root', template: ` <h1>root component!</h1> <article></article> <article></article> ` }) export class RootComponent {} [app/article.component.ts] import {Component} from '@angular/core'; ...

Get Angular 2 Cookbook now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.