Angular Service Parent and Child

Parent and Child

If you inject Service in parent, child component can use parent injection service.

This is an example.

ParentService

parent.service.ts

import { Injectable } from '@angular/core';

@Injectable()
export class ParentService {

  getMessage() {
    return 'I am parent.';
  }
}

Parent

parent.component.ts

import { Component } from '@angular/core';
import { ParentService } from './parent.service';

@Component({
  selector: 'app-root',
  providers: [
    {provide: ParentService, useClass: ParentService}
  ],
  template: `
  <div>
    Parent : {{message}}
  </div>
  <div>
      <app-child-comp></app-child-comp>
      <app-child-comp></app-child-comp>
   </div>
  `
})
export class ParentComponent {
  message: string;

  constructor(private parentService: ParentService) {
    this.message = parentService.getMessage();
  }
}

Child

import { Component } from '@angular/core';
import { ParentService } from './parent.service';

@Component({
  selector: 'app-child-comp',
  template: `
    <div>Child : {{message}}</div>
  `
})
export class ChildComponent {
  message: string;

  constructor(private parentService: ParentService) {
    this.message = parentService.getMessage();
  }
}

Child component does not have “ParentService” injection. But Child Component can use!!