0

I want to run ngOnInit() of one component in another component without refreshing the current page.

Hasee Amarathunga
  • 1,901
  • 12
  • 17
  • 1
    Refer this link https://stackoverflow.com/questions/37587732/how-to-call-another-components-function-in-angular2 – Sayan Apr 17 '19 at 07:04
  • You have to define the second component as a **child** of the first – veben Apr 17 '19 at 07:19
  • The parent component should do this. There are several ways to accomplish such, you may want to use `@ViewChild` to get a reference to the desired component, then use that reference to call `ngOnInit`. – briosheje Apr 17 '19 at 07:40

1 Answers1

0

Sample code for CompOneComponent

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-comp-one',
  templateUrl: './comp-one.component.html',
  styleUrls: ['./comp-one.component.css']
 })

export class CompOneComponent implements OnInit {

 constructor() { }

 ngOnInit() {
     console.log("CompOneComponent ngOnInit called successfully ..");
  }

 public compOneCall() {
    console.log("CompOneComponent called successfully ..");
  }
}

Sample code for parent/AppComponent

import { Component, OnInit } from '@angular/core';
import { CompOneComponent } from './comp-one/comp-one.component';

@Component({
 selector: 'my-app',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css'],
 providers: [CompOneComponent],
})

export class AppComponent implements OnInit {
public name = 'Angular 6';

constructor(private compOne: CompOneComponent) { }

ngOnInit() {
 this.compOne.ngOnInit();
 this.compOne.compOneCall();
 }
}

Here is stackblitz example https://stackblitz.com/edit/hello-angular-6-tbufva,

Sayan
  • 481
  • 5
  • 12
  • It's show an error in Angular 7. Uncaught ReferenceError: viewChild is not defined at organizer.component.ts:21 – Hasee Amarathunga Apr 17 '19 at 08:21
  • Are you Imported viewChild from angular/core? – Sayan Apr 17 '19 at 08:25
  • I want to call method of SomeComponent in another Component.I follow some codes. But it's not work in angular 7 – Hasee Amarathunga Apr 17 '19 at 09:37
  • @HaseeAmarathunga Exactly same thing implemented here https://stackblitz.com/edit/hello-angular-6-tbufva. I'm calling CompOneComponent method from AppComponent. – Sayan Apr 17 '19 at 09:41
  • Let us [continue this discussion in chat](https://chat.stackoverflow.com/rooms/191970/discussion-between-sayan-samanta-and-hasee-amarathunga). – Sayan Apr 17 '19 at 10:20