angular tap into the component life cycle events from a parent module Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) The Ask Question Wizard is Live! Data science time! April 2019 and salary with experienceangular 2 update app component from router outlet componentEmitting event from root component to router outlet child componentAngular 2 Activatedroute params not working in Service or outside <router-outlet>Angular 2 - children component in parents router outletHow to inject routes to external angular moduleHow to detect a new angular component is loaded in layout component?Code in Angular 2+ routing component not runningAngular 5 trigger navigation on parent router-outlet from child outletMonitor Angular component lifecycle hooksAngular 6 - How to access route resolved data from non routed components
Did the new image of black hole confirm the general theory of relativity?
When is phishing education going too far?
Why does this iterative way of solving of equation work?
Can a non-EU citizen traveling with me come with me through the EU passport line?
Passing functions in C++
What are the performance impacts of 'functional' Rust?
Cauchy Sequence Characterized only By Directly Neighbouring Sequence Members
Statistical model of ligand substitution
Who can trigger ship-wide alerts in Star Trek?
What can I do if my MacBook isn’t charging but already ran out?
How can you insert a "times/divide" symbol similar to the "plus/minus" (±) one?
90's book, teen horror
Replacing HDD with SSD; what about non-APFS/APFS?
Single author papers against my advisor's will?
What do you call the holes in a flute?
Autumning in love
Why use gamma over alpha radiation?
Active filter with series inductor and resistor - do these exist?
I'm having difficulty getting my players to do stuff in a sandbox campaign
How to politely respond to generic emails requesting a PhD/job in my lab? Without wasting too much time
How can players take actions together that are impossible otherwise?
Determine whether f is a function, an injection, a surjection
New Order #5: where Fibonacci and Beatty meet at Wythoff
How to say 'striped' in Latin
angular tap into the component life cycle events from a parent module
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
The Ask Question Wizard is Live!
Data science time! April 2019 and salary with experienceangular 2 update app component from router outlet componentEmitting event from root component to router outlet child componentAngular 2 Activatedroute params not working in Service or outside <router-outlet>Angular 2 - children component in parents router outletHow to inject routes to external angular moduleHow to detect a new angular component is loaded in layout component?Code in Angular 2+ routing component not runningAngular 5 trigger navigation on parent router-outlet from child outletMonitor Angular component lifecycle hooksAngular 6 - How to access route resolved data from non routed components
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
We have the following requirement.
We have a master root layout in the app root component.
In this layout we have a router-outlet and components are injected into the router-outlet by using the Angular routing mechanism.
We need to hook from the master root layout into the lifecycle events of the components being injected into the router-outlet.
Because if we register to the router events NavigationEnd it is sometimes being invoked before the component ngOnInit.
So we know when the navigation ends but we don't know when the component has finished doing work. Ideally we would like to tap into the lifecycle events of a component.
The requirement is also that the components being injected do not inherit a special class or something like that...
How can this be done?
angular angular-routing
add a comment |
We have the following requirement.
We have a master root layout in the app root component.
In this layout we have a router-outlet and components are injected into the router-outlet by using the Angular routing mechanism.
We need to hook from the master root layout into the lifecycle events of the components being injected into the router-outlet.
Because if we register to the router events NavigationEnd it is sometimes being invoked before the component ngOnInit.
So we know when the navigation ends but we don't know when the component has finished doing work. Ideally we would like to tap into the lifecycle events of a component.
The requirement is also that the components being injected do not inherit a special class or something like that...
How can this be done?
angular angular-routing
add a comment |
We have the following requirement.
We have a master root layout in the app root component.
In this layout we have a router-outlet and components are injected into the router-outlet by using the Angular routing mechanism.
We need to hook from the master root layout into the lifecycle events of the components being injected into the router-outlet.
Because if we register to the router events NavigationEnd it is sometimes being invoked before the component ngOnInit.
So we know when the navigation ends but we don't know when the component has finished doing work. Ideally we would like to tap into the lifecycle events of a component.
The requirement is also that the components being injected do not inherit a special class or something like that...
How can this be done?
angular angular-routing
We have the following requirement.
We have a master root layout in the app root component.
In this layout we have a router-outlet and components are injected into the router-outlet by using the Angular routing mechanism.
We need to hook from the master root layout into the lifecycle events of the components being injected into the router-outlet.
Because if we register to the router events NavigationEnd it is sometimes being invoked before the component ngOnInit.
So we know when the navigation ends but we don't know when the component has finished doing work. Ideally we would like to tap into the lifecycle events of a component.
The requirement is also that the components being injected do not inherit a special class or something like that...
How can this be done?
angular angular-routing
angular angular-routing
asked Mar 22 at 7:47
stephan.petersstephan.peters
375318
375318
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Maybe you can create a shared service that you inform when the components you want call in the lifecycle hooks such as ngOnInit
, ngOnDestroy
etc.
@Injectable(
providedIn: 'root'
)
export class LifeCycleHookService string - OnInit, OnDestroy etc.
fireHook = (component, hookType) =>
this.hookSubject.next(component, hookType);
Then in your parent component, you can subscribe to onHookFired
of the service.
@Component(
...
)
export class ParentComponent implements OnInit
constructor(private hookService: LifeCycleHookService)
ngOnInit()
this.hookService.onHookFired.subscribe((event) =>
// event.component
// event.hookType
)
Then in your child components, you can inform the service on lifecycle hooks.
@Component(
...
)
export class ChildComponent implements OnInit, OnDestroy
constructor(private hookService: LifeCycleHookService)
ngOnInit()
this.hookService.fireHook(this, 'onInit');
ngOnDestroy()
this.hookService.fireHook(this, 'onDestroy');
Hope this gives you a hint.
Hello. We don't have control on the components being injected. We can't ask them to invoke this.
– stephan.peters
Mar 22 at 8:49
Oh, got it. I don't know a way to do so then.
– Harun Yılmaz
Mar 22 at 8:52
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55295019%2fangular-tap-into-the-component-life-cycle-events-from-a-parent-module%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Maybe you can create a shared service that you inform when the components you want call in the lifecycle hooks such as ngOnInit
, ngOnDestroy
etc.
@Injectable(
providedIn: 'root'
)
export class LifeCycleHookService string - OnInit, OnDestroy etc.
fireHook = (component, hookType) =>
this.hookSubject.next(component, hookType);
Then in your parent component, you can subscribe to onHookFired
of the service.
@Component(
...
)
export class ParentComponent implements OnInit
constructor(private hookService: LifeCycleHookService)
ngOnInit()
this.hookService.onHookFired.subscribe((event) =>
// event.component
// event.hookType
)
Then in your child components, you can inform the service on lifecycle hooks.
@Component(
...
)
export class ChildComponent implements OnInit, OnDestroy
constructor(private hookService: LifeCycleHookService)
ngOnInit()
this.hookService.fireHook(this, 'onInit');
ngOnDestroy()
this.hookService.fireHook(this, 'onDestroy');
Hope this gives you a hint.
Hello. We don't have control on the components being injected. We can't ask them to invoke this.
– stephan.peters
Mar 22 at 8:49
Oh, got it. I don't know a way to do so then.
– Harun Yılmaz
Mar 22 at 8:52
add a comment |
Maybe you can create a shared service that you inform when the components you want call in the lifecycle hooks such as ngOnInit
, ngOnDestroy
etc.
@Injectable(
providedIn: 'root'
)
export class LifeCycleHookService string - OnInit, OnDestroy etc.
fireHook = (component, hookType) =>
this.hookSubject.next(component, hookType);
Then in your parent component, you can subscribe to onHookFired
of the service.
@Component(
...
)
export class ParentComponent implements OnInit
constructor(private hookService: LifeCycleHookService)
ngOnInit()
this.hookService.onHookFired.subscribe((event) =>
// event.component
// event.hookType
)
Then in your child components, you can inform the service on lifecycle hooks.
@Component(
...
)
export class ChildComponent implements OnInit, OnDestroy
constructor(private hookService: LifeCycleHookService)
ngOnInit()
this.hookService.fireHook(this, 'onInit');
ngOnDestroy()
this.hookService.fireHook(this, 'onDestroy');
Hope this gives you a hint.
Hello. We don't have control on the components being injected. We can't ask them to invoke this.
– stephan.peters
Mar 22 at 8:49
Oh, got it. I don't know a way to do so then.
– Harun Yılmaz
Mar 22 at 8:52
add a comment |
Maybe you can create a shared service that you inform when the components you want call in the lifecycle hooks such as ngOnInit
, ngOnDestroy
etc.
@Injectable(
providedIn: 'root'
)
export class LifeCycleHookService string - OnInit, OnDestroy etc.
fireHook = (component, hookType) =>
this.hookSubject.next(component, hookType);
Then in your parent component, you can subscribe to onHookFired
of the service.
@Component(
...
)
export class ParentComponent implements OnInit
constructor(private hookService: LifeCycleHookService)
ngOnInit()
this.hookService.onHookFired.subscribe((event) =>
// event.component
// event.hookType
)
Then in your child components, you can inform the service on lifecycle hooks.
@Component(
...
)
export class ChildComponent implements OnInit, OnDestroy
constructor(private hookService: LifeCycleHookService)
ngOnInit()
this.hookService.fireHook(this, 'onInit');
ngOnDestroy()
this.hookService.fireHook(this, 'onDestroy');
Hope this gives you a hint.
Maybe you can create a shared service that you inform when the components you want call in the lifecycle hooks such as ngOnInit
, ngOnDestroy
etc.
@Injectable(
providedIn: 'root'
)
export class LifeCycleHookService string - OnInit, OnDestroy etc.
fireHook = (component, hookType) =>
this.hookSubject.next(component, hookType);
Then in your parent component, you can subscribe to onHookFired
of the service.
@Component(
...
)
export class ParentComponent implements OnInit
constructor(private hookService: LifeCycleHookService)
ngOnInit()
this.hookService.onHookFired.subscribe((event) =>
// event.component
// event.hookType
)
Then in your child components, you can inform the service on lifecycle hooks.
@Component(
...
)
export class ChildComponent implements OnInit, OnDestroy
constructor(private hookService: LifeCycleHookService)
ngOnInit()
this.hookService.fireHook(this, 'onInit');
ngOnDestroy()
this.hookService.fireHook(this, 'onDestroy');
Hope this gives you a hint.
answered Mar 22 at 8:42
Harun YılmazHarun Yılmaz
1,85021320
1,85021320
Hello. We don't have control on the components being injected. We can't ask them to invoke this.
– stephan.peters
Mar 22 at 8:49
Oh, got it. I don't know a way to do so then.
– Harun Yılmaz
Mar 22 at 8:52
add a comment |
Hello. We don't have control on the components being injected. We can't ask them to invoke this.
– stephan.peters
Mar 22 at 8:49
Oh, got it. I don't know a way to do so then.
– Harun Yılmaz
Mar 22 at 8:52
Hello. We don't have control on the components being injected. We can't ask them to invoke this.
– stephan.peters
Mar 22 at 8:49
Hello. We don't have control on the components being injected. We can't ask them to invoke this.
– stephan.peters
Mar 22 at 8:49
Oh, got it. I don't know a way to do so then.
– Harun Yılmaz
Mar 22 at 8:52
Oh, got it. I don't know a way to do so then.
– Harun Yılmaz
Mar 22 at 8:52
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55295019%2fangular-tap-into-the-component-life-cycle-events-from-a-parent-module%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown