@@ -40,6 +40,10 @@ export class RouterOutlet {
4040 }
4141 }
4242
43+ /**
44+ * Called by the Router to instantiate a new component during the commit phase of a navigation.
45+ * This method in turn is responsible for calling the `onActivate` hook of its child.
46+ */
4347 activate ( nextInstruction : ComponentInstruction ) : Promise < any > {
4448 var previousInstruction = this . _currentInstruction ;
4549 this . _currentInstruction = nextInstruction ;
@@ -61,6 +65,11 @@ export class RouterOutlet {
6165 } ) ;
6266 }
6367
68+ /**
69+ * Called by the {@link Router} during the commit phase of a navigation when an outlet
70+ * reuses a component between different routes.
71+ * This method in turn is responsible for calling the `onReuse` hook of its child.
72+ */
6473 reuse ( nextInstruction : ComponentInstruction ) : Promise < any > {
6574 var previousInstruction = this . _currentInstruction ;
6675 this . _currentInstruction = nextInstruction ;
@@ -74,6 +83,10 @@ export class RouterOutlet {
7483 true ) ;
7584 }
7685
86+ /**
87+ * Called by the {@link Router} when an outlet reuses a component across navigations.
88+ * This method in turn is responsible for calling the `onReuse` hook of its child.
89+ */
7790 deactivate ( nextInstruction : ComponentInstruction ) : Promise < any > {
7891 var next = _resolveToTrue ;
7992 if ( isPresent ( this . _componentRef ) && isPresent ( this . _currentInstruction ) &&
@@ -90,7 +103,12 @@ export class RouterOutlet {
90103 }
91104
92105 /**
93- * Called by Router during recognition phase
106+ * Called by the {@link Router} during recognition phase of a navigation.
107+ *
108+ * If this resolves to `false`, the given navigation is cancelled.
109+ *
110+ * This method delegates to the child component's `canDeactivate` hook if it exists,
111+ * and otherwise resolves to true.
94112 */
95113 canDeactivate ( nextInstruction : ComponentInstruction ) : Promise < boolean > {
96114 if ( isBlank ( this . _currentInstruction ) ) {
@@ -103,9 +121,15 @@ export class RouterOutlet {
103121 return _resolveToTrue ;
104122 }
105123
106-
107124 /**
108- * Called by Router during recognition phase
125+ * Called by the {@link Router} during recognition phase of a navigation.
126+ *
127+ * If the new child component has a different Type than the existing child component,
128+ * this will resolve to `false`. You can't reuse an old component when the new component
129+ * is of a different Type.
130+ *
131+ * Otherwise, this method delegates to the child component's `canReuse` hook if it exists,
132+ * or resolves to true if the hook is not present.
109133 */
110134 canReuse ( nextInstruction : ComponentInstruction ) : Promise < boolean > {
111135 var result ;
0 commit comments