diff --git a/packages/core/src/change_detection/change_detector_ref.ts b/packages/core/src/change_detection/change_detector_ref.ts
index 49cdaf425d..4090d09ef6 100644
--- a/packages/core/src/change_detection/change_detector_ref.ts
+++ b/packages/core/src/change_detection/change_detector_ref.ts
@@ -44,7 +44,7 @@
* when the `live` property is set to false, and reattaches it when the property
* becomes true.
*
- *
+ *
*
*/
export abstract class ChangeDetectorRef {
diff --git a/packages/core/src/linker/component_factory.ts b/packages/core/src/linker/component_factory.ts
index 096a89b4f7..9a6692c5da 100644
--- a/packages/core/src/linker/component_factory.ts
+++ b/packages/core/src/linker/component_factory.ts
@@ -15,36 +15,35 @@ import {NgModuleRef} from './ng_module_factory';
import {ViewRef} from './view_ref';
/**
- * Represents an instance of a Component created via a {@link ComponentFactory}.
- *
- * `ComponentRef` provides access to the Component Instance as well other objects related to this
- * Component Instance and allows you to destroy the Component Instance via the {@link #destroy}
- * method.
+ * Represents a component created by a `ComponentFactory`.
+ * Provides access to the component instance and related objects,
+ * and provides the means of destroying the instance.
*
*/
export abstract class ComponentRef {
/**
- * Location of the Host Element of this Component Instance.
+ * The host or anchor [element](guide/glossary#element) for this component instance.
*/
abstract get location(): ElementRef;
/**
- * The injector on which the component instance exists.
+ * The [dependency injector](guide/glossary#injector) for this component instance.
*/
abstract get injector(): Injector;
/**
- * The instance of the Component.
+ * This component instance.
*/
abstract get instance(): C;
/**
- * The {@link ViewRef} of the Host View of this Component instance.
+ * The [host view](guide/glossary#view-tree) defined by the template
+ * for this component instance.
*/
abstract get hostView(): ViewRef;
/**
- * The {@link ChangeDetectorRef} of the Component instance.
+ * The change detector for this component instance.
*/
abstract get changeDetectorRef(): ChangeDetectorRef;
@@ -59,24 +58,33 @@ export abstract class ComponentRef {
abstract destroy(): void;
/**
- * Allows to register a callback that will be called when the component is destroyed.
+ * A lifecycle hook that provides additional developer-defined cleanup
+ * functionality for the component.
+ * @param callback A handler function that cleans up developer-defined data
+ * associated with this component. Called when the `destroy()` method is invoked.
*/
abstract onDestroy(callback: Function): void;
}
export abstract class ComponentFactory {
+ /**
+ * The comonent's HTML selector.
+ */
abstract get selector(): string;
+ /**
+ * The component's type
+ */
abstract get componentType(): Type;
/**
- * selector for all elements in the component.
+ * Selector for all elements in the component.
*/
abstract get ngContentSelectors(): string[];
/**
- * the inputs of the component.
+ * The inputs of the component.
*/
abstract get inputs(): {propName: string, templateName: string}[];
/**
- * the outputs of the component.
+ * The outputs of the component.
*/
abstract get outputs(): {propName: string, templateName: string}[];
/**
diff --git a/packages/core/src/linker/view_container_ref.ts b/packages/core/src/linker/view_container_ref.ts
index bd2917fcec..132d153c74 100644
--- a/packages/core/src/linker/view_container_ref.ts
+++ b/packages/core/src/linker/view_container_ref.ts
@@ -15,111 +15,121 @@ import {EmbeddedViewRef, ViewRef} from './view_ref';
/**
- * Represents a container where one or more Views can be attached.
- *
- * The container can contain two kinds of Views. Host Views, created by instantiating a
- * {@link Component} via {@link #createComponent}, and Embedded Views, created by instantiating an
- * {@link TemplateRef Embedded Template} via {@link #createEmbeddedView}.
- *
- * The location of the View Container within the containing View is specified by the Anchor
- * `element`. Each View Container can have only one Anchor Element and each Anchor Element can only
- * have a single View Container.
- *
- * Root elements of Views attached to this container become siblings of the Anchor Element in
- * the Rendered View.
- *
- * To access a `ViewContainerRef` of an Element, you can either place a {@link Directive} injected
- * with `ViewContainerRef` on the Element, or you obtain it via a {@link ViewChild} query.
+ * Represents a container where one or more views can be attached to a component.
+ * Can contain _host_ views (created by instantiating a
+ * Component` with the `createComponent()` method), and _embedded views_
+ * (created by instantiating a `TemplateRef` with the `createEmbeddedView()` method.
*
*/
export abstract class ViewContainerRef {
/**
- * Anchor element that specifies the location of this container in the containing View.
+ * Anchor element that specifies the location of this container in the containing view.
+ * Each view container can have only one anchor element, and each anchor element
+ * can have only a single view container.
+ *
+ * Root elements of views attached to this container become siblings of the anchor element in
+ * the rendered view.
+ *
+ * Access the `ViewContainerRef` of an element by placing a `Directive` injected
+ * with `ViewContainerRef` on the element, or use a `ViewChild` query.
+ *
*
*/
abstract get element(): ElementRef;
+ /**
+ * The [dependency injector](guide/glossary#injector) for this view container.
+ */
abstract get injector(): Injector;
/** @deprecated No replacement */
abstract get parentInjector(): Injector;
/**
- * Destroys all Views in this container.
+ * Destroys all views in this container.
*/
abstract clear(): void;
/**
- * Returns the {@link ViewRef} for the View located in this container at the specified index.
+ * Retrieves a view from this container.
+ * @param index The 0-based index of the view to retrieve.
+ * @returns The `ViewRef` instance, or null if the index is out of range.
*/
abstract get(index: number): ViewRef|null;
/**
- * Returns the number of Views currently attached to this container.
+ * Reports how many views are currently attached to this container.
+ * @returns The number of views.
*/
abstract get length(): number;
/**
- * Instantiates an Embedded View based on the {@link TemplateRef `templateRef`} and inserts it
- * into this container at the specified `index`.
+ * Instantiates an embedded view and inserts it
+ * into this container.
+ * @param templateRef The HTML template that defines the view.
+ * @param index The 0-based index at which to insert the new view into this container.
+ * If not specified, appends the new view as the last entry.
*
- * If `index` is not specified, the new View will be inserted as the last View in the container.
- *
- * Returns the {@link ViewRef} for the newly created View.
+ * @returns The `ViewRef` instance for the newly created view.
*/
abstract createEmbeddedView(templateRef: TemplateRef, context?: C, index?: number):
EmbeddedViewRef;
/**
- * Instantiates a single {@link Component} and inserts its Host View into this container at the
- * specified `index`.
+ * Instantiates a single component and inserts its host view into this container.
*
- * The component is instantiated using its {@link ComponentFactory} which can be obtained via
- * {@link ComponentFactoryResolver#resolveComponentFactory resolveComponentFactory}.
+ * @param componentFactory The factory to use.
+ * @param index The index at which to insert the new component's host view into this container.
+ * If not specified, appends the new view as the last entry.
+ * @param injector The injector to use as the parent for the new component.
+ * @param projectableNodes
+ * @param ngModule
*
- * If `index` is not specified, the new View will be inserted as the last View in the container.
+ * @returns The new component instance, containing the host view.
*
- * You can optionally specify the {@link Injector} that will be used as parent for the Component.
- *
- * Returns the {@link ComponentRef} of the Host View created for the newly instantiated Component.
*/
abstract createComponent(
componentFactory: ComponentFactory, index?: number, injector?: Injector,
projectableNodes?: any[][], ngModule?: NgModuleRef): ComponentRef;
/**
- * Inserts a View identified by a {@link ViewRef} into the container at the specified `index`.
+ * Inserts a view into this container.
+ * @param viewRef The view to insert.
+ * @param index The 0-based index at which to insert the view.
+ * If not specified, appends the new view as the last entry.
+ * @returns The inserted `ViewRef` instance.
*
- * If `index` is not specified, the new View will be inserted as the last View in the container.
- *
- * Returns the inserted {@link ViewRef}.
*/
abstract insert(viewRef: ViewRef, index?: number): ViewRef;
/**
- * Moves a View identified by a {@link ViewRef} into the container at the specified `index`.
- *
- * Returns the inserted {@link ViewRef}.
+ * Moves a view to a new location in this container.
+ * @param viewRef The view to move.
+ * @param index The 0-based index of the new location.
+ * @returns The moved `ViewRef` instance.
*/
abstract move(viewRef: ViewRef, currentIndex: number): ViewRef;
/**
- * Returns the index of the View, specified via {@link ViewRef}, within the current container or
- * `-1` if this container doesn't contain the View.
+ * Returns the index of a view within the current container.
+ * @parem viewRef The view to query.
+ * @returns The 0-based index of the view's position in this container,
+ * or `-1` if this container doesn't contain the view.
*/
abstract indexOf(viewRef: ViewRef): number;
/**
- * Destroys a View attached to this container at the specified `index`.
- *
- * If `index` is not specified, the last View in the container will be removed.
+ * Destroys a view attached to this container
+ * @param index The 0-based index of the view to destroy.
+ * If not specified, the last view in the container is removed.
*/
abstract remove(index?: number): void;
/**
- * Use along with {@link #insert} to move a View within the current container.
- *
- * If the `index` param is omitted, the last {@link ViewRef} is detached.
+ * Detaches a view from this container without destroying it.
+ * Use along with `insert()` to move a view within the current container.
+ * @param index The 0-based index of the view to detach.
+ * If not specified, the last view in the container is detached.
*/
abstract detach(index?: number): ViewRef|null;
}
diff --git a/packages/core/src/linker/view_ref.ts b/packages/core/src/linker/view_ref.ts
index ffeb9be846..815f6db806 100644
--- a/packages/core/src/linker/view_ref.ts
+++ b/packages/core/src/linker/view_ref.ts
@@ -9,33 +9,49 @@
import {ApplicationRef} from '../application_ref';
import {ChangeDetectorRef} from '../change_detection/change_detector_ref';
+/**
+ * Represents an Angular [view](guide/glossary#view),
+ * specifically the [host view](guide/glossary#view-tree) that is defined by a component.
+ * Also serves as the base class
+ * that adds destroy methods for [embedded views](guide/glossary#view-tree).
+ *
+ * @see `EmbeddedViewRef`
+ */
export abstract class ViewRef extends ChangeDetectorRef {
/**
- * Destroys the view and all of the data structures associated with it.
+ * Destroys this view and all of the data structures associated with it.
*/
abstract destroy(): void;
+ /**
+ * Reports whether this view has been destroyed.
+ * @returns True after the `destroy()` method has been called, false otherwise.
+ */
abstract get destroyed(): boolean;
+ /**
+ * A lifecycle hook that provides additional developer-defined cleanup
+ * functionality for views.
+ * @param callback A handler function that cleans up developer-defined data
+ * associated with a view. Called when the `destroy()` method is invoked.
+ */
abstract onDestroy(callback: Function): any /** TODO #9100 */;
}
/**
- * Represents an Angular View.
+ * Represents an Angular [view](guide/glossary#view) in a view container.
+ * An [embedded view](guide/glossary#view-tree) can be referenced from a component
+ * other than the hosting component whose template defines it, or it can be defined
+ * independently by a `TemplateRef`.
*
- *
- * A View is a fundamental building block of the application UI. It is the smallest grouping of
- * Elements which are created and destroyed together.
+ * Properties of elements in a view can change, but the structure (number and order) of elements in
+ * a view cannot. Change the structure of elements by inserting, moving, or
+ * removing nested views in a view container.
*
- * Properties of elements in a View can change, but the structure (number and order) of elements in
- * a View cannot. Changing the structure of Elements can only be done by inserting, moving or
- * removing nested Views via a `ViewContainerRef`. Each View can contain many View Containers.
- *
+ * @see `ViewContainerRef`
*
- * @usageNotes
- * ### Example
- *
- * Given this template...
+ * The following template breaks down into two separate `TemplateRef` instances,
+ * an outer one and and an inner one.
*
* ```
* Count: {{items.length}}
@@ -44,9 +60,7 @@ export abstract class ViewRef extends ChangeDetectorRef {
*
* ```
*
- * We have two `TemplateRef`s:
- *
- * Outer `TemplateRef`:
+ * This is the outer `TemplateRef`:
*
* ```
* Count: {{items.length}}
@@ -55,15 +69,13 @@ export abstract class ViewRef extends ChangeDetectorRef {
*
* ```
*
- * Inner `TemplateRef`:
+ * This is the inner `TemplateRef`:
*
* ```
* {{item}}
* ```
*
- * Notice that the original template is broken down into two separate `TemplateRef`s.
- *
- * The outer/inner `TemplateRef`s are then assembled into views like so:
+ * The outer and inner `TemplateRef` instances are assembled into views as follows:
*
* ```
*