diff --git a/public/docs/ts/latest/guide/lifecycle-hooks.jade b/public/docs/ts/latest/guide/lifecycle-hooks.jade
index 9f164d8b4c..c2c5cebe4e 100644
--- a/public/docs/ts/latest/guide/lifecycle-hooks.jade
+++ b/public/docs/ts/latest/guide/lifecycle-hooks.jade
@@ -5,30 +5,37 @@ block includes
:marked
# Component Lifecycle
- A Component has a lifecycle managed by Angular itself. Angular creates it, renders it, creates and renders its children,
+figure
+ img(src="/resources/images/devguide/lifecycle-hooks/hooks-in-sequence.png" alt="Us" align="left" style="width:200px; margin-left:-40px;margin-right:30px" )
+:marked
+ A component has a lifecycle managed by Angular itself.
+
+ Angular creates it, renders it, creates and renders its children,
checks it when its data-bound properties change, and destroys it before removing it from the DOM.
- Angular offers **component lifecycle hooks**
- that provide visibility into these key moments and the ability to act when they occur.
+ Angular offers **lifecycle hooks**
+ that provide visibility into these key life moments and the ability to act when they occur.
+ A directive has the same set of lifecycle hooks, minus the hooks that are specific to component content and views.
+
## Table of Contents
- * [The lifecycle hooks](#hooks-overview)
- * [_What_ they are](#hook-descriptions)
- * [_When_ they are called](#hook-sequence)
+ * [Overview](#hooks-overview)
+
+ * [Each hook's purpose and timing](#hooks-purpose-timing)
+ifDocsFor('ts|js')
:marked
* [Interfaces are optional (technically)](#interface-optional)
+ :marked
+ * [Other Angular lifecycle hooks](#other-lifecycle-hooks)
+
+ * [The lifecycle sample](#the-sample)
+ * [All](#peek-a-boo)
+ * [Spying OnInit and OnDestroy](#spy)
+ * [OnChanges](#onchanges)
+ * [DoCheck](#docheck)
+ * [AfterViewInit and AfterViewChecked](#afterview)
+ * [AfterContentInit and AfterContentChecked](#aftercontent)
:marked
- * [Other Angular lifecycle hooks](#other-lifecycle-hooks)
-
- * [The lifecycle sample](#the-sample)
- * [All](#peek-a-boo)
- * [Spying OnInit and OnDestroy](#spy)
- * [OnChanges](#onchanges)
- * [DoCheck](#docheck)
- * [AfterViewInit and AfterViewChecked](#afterview)
- * [AfterContentInit and AfterContentChecked](#aftercontent)
-
Try the .
a#hooks-overview
@@ -48,75 +55,7 @@ a#hooks-overview
No directive or component will implement all of the lifecycle hooks and some of the hooks only make sense for components.
Angular only calls a directive/component hook method *if it is defined*.
-a#hook-descriptions
-:marked
- Here are descriptions of the component lifecycle hook methods followed by a chart describing [when they are called](#hook-sequence):
-
- ### Directives and Components
-
-table(width="100%")
- col(width="20%")
- col(width="80%")
- tr
- th Hook
- th Purpose
- tr(style=top)
- td ngOnInit
- td
- :marked
- Initialize the directive/component after Angular initializes the data-bound input properties.
- tr(style=top)
- td ngOnChanges
- td
- :marked
- Respond after Angular sets a data-bound input property.
- The method receives a `changes` object of current and previous values.
- tr(style=top)
- td ngDoCheck
- td
- :marked
- Detect and act upon changes that Angular can't or won't
- detect on its own. Called every change detection run.
- tr(style=top)
- td ngOnDestroy
- td
- :marked
- Cleanup just before Angular destroys the directive/component.
- Unsubscribe observables and detach event handlers to avoid memory leaks.
-
-:marked
- ### Components only
-
-table(width="100%")
- col(width="20%")
- col(width="80%")
- tr
- th Hook
- th Purpose
- tr(style=top)
- td ngAfterContentInit
- td
- :marked
- After Angular projects external content into its view.
- tr(style=top)
- td ngAfterContentChecked
- td
- :marked
- After Angular checks the bindings of the external content that it projected into its view.
- tr(style=top)
- td ngAfterViewInit
- td
- :marked
- After Angular creates the component's view(s).
- tr(style=top)
- td ngAfterViewChecked
- td
- :marked
- After Angular checks the bindings of the component's view(s).
-:marked
- Angular does not call the hook methods in this order.
-
-a#hook-sequence
+a#hooks-purpose-timing
.l-main-section
:marked
## Lifecycle sequence
@@ -127,47 +66,82 @@ table(width="100%")
col(width="80%")
tr
th Hook
- th Timing
+ th Purpose and Timing
+
tr(style=top)
td ngOnChanges
td
:marked
- before `ngOnInit` and when a data-bound input property value changes.
+ Respond when Angular (re)sets data-bound input properties.
+ The method receives a `SimpleChanges` object of current and previous property values.
+
+ Called before `ngOnInit` and whenever one or more data-bound input properties change.
+
tr(style=top)
td ngOnInit
td
:marked
- after the first `ngOnChanges`.
+ Initialize the directive/component after Angular first displays the data-bound properties
+ and sets the directive/component's input properties.
+
+ Called _once_, after the _first_ `ngOnChanges`.
+
tr(style=top)
td ngDoCheck
td
:marked
- during every Angular change detection cycle.
+ Detect and act upon changes that Angular can't or won't detect on its own.
+
+ Called during every change detection run, immediately after `ngOnChanges` and `ngOnInit`.
+
tr(style=top)
td ngAfterContentInit
td
:marked
- after projecting content into the component.
+ Respond after Angular projects external content into the component's view.
+
+ Called _once_ after the first `NgDoCheck`.
+
+ _A component-only hook_.
+
tr(style=top)
td ngAfterContentChecked
td
:marked
- after every check of projected component content.
+ Respond after Angular checks the content projected into the component.
+
+ Called after the `ngAfterContentInit` and every subsequent `NgDoCheck`.
+
+ _A component-only hook_.
+
tr(style=top)
td ngAfterViewInit
td
:marked
- after initializing the component's views and child views.
+ Respond after Angular initializes the component's views and child views.
+
+ Called _once_ after the first `ngAfterContentChecked`.
+
+ _A component-only hook_.
+
tr(style=top)
td ngAfterViewChecked
td
:marked
- after every check of the component's views and child views.
+ Respond after Angular checks the component's views and child views.
+
+ Called after the `ngAfterViewInit` and every subsequent `ngAfterContentChecked`.
+
+ _A component-only hook_.
+
tr(style=top)
td ngOnDestroy
td
:marked
- just before Angular destroys the directive/component.
+ Cleanup just before Angular destroys the directive/component.
+ Unsubscribe observables and detach event handlers to avoid memory leaks.
+
+ Called _just before_ Angular destroys the directive/component.
+ifDocsFor('ts|js')
a#interface-optional
diff --git a/public/resources/images/devguide/lifecycle-hooks/hooks-in-sequence.png b/public/resources/images/devguide/lifecycle-hooks/hooks-in-sequence.png
new file mode 100644
index 0000000000..128d8673af
Binary files /dev/null and b/public/resources/images/devguide/lifecycle-hooks/hooks-in-sequence.png differ