diff --git a/modules/angular2/src/core/forms/directives/ng_form.ts b/modules/angular2/src/core/forms/directives/ng_form.ts
index b31bf7d49e..4d5a38743a 100644
--- a/modules/angular2/src/core/forms/directives/ng_form.ts
+++ b/modules/angular2/src/core/forms/directives/ng_form.ts
@@ -19,36 +19,64 @@ const formDirectiveBinding =
CONST_EXPR(new Binding(ControlContainer, {toAlias: forwardRef(() => NgForm)}));
/**
- * Creates and binds a form object to a DOM element.
+ * If `NgForm` is bound in a component, `
- * `})
- * class SignupComp {
- * onSignUp(value): void {
- * // value === {
- * // personal: {name: 'some name'},
- * // credentials: {login: 'some login', password: 'some password'}}
- * }
+ * data: string;
+ *
+ * onSubmit(data) {
+ * this.data = JSON.stringify(data, null, 2);
+ * }
* }
- *
* ```
*/
@Directive({
diff --git a/modules/angular2/src/core/forms/directives/ng_form_control.ts b/modules/angular2/src/core/forms/directives/ng_form_control.ts
index ee67f7b128..7745998ad2 100644
--- a/modules/angular2/src/core/forms/directives/ng_form_control.ts
+++ b/modules/angular2/src/core/forms/directives/ng_form_control.ts
@@ -12,29 +12,43 @@ const formControlBinding =
CONST_EXPR(new Binding(NgControl, {toAlias: forwardRef(() => NgFormControl)}));
/**
- * Binds an existing control to a DOM element.
+ * Binds an existing {@link Control} to a DOM element.
*
- * # Example
+ * ### Example ([live demo](http://plnkr.co/edit/jcQlZ2tTh22BZZ2ucNAT?p=preview))
*
* In this example, we bind the control to an input element. When the value of the input element
* changes, the value of the control will reflect that change. Likewise, if the value of the
* control changes, the input element reflects that change.
*
- * ```
- * @Component({selector: "login-comp"})
+ * ```typescript
+ * @Component({
+ * selector: 'my-app'
+ * })
* @View({
- * directives: [FORM_DIRECTIVES],
- * template: ""
- * })
- * class LoginComp {
- * loginControl: Control = new Control('');;
+ * template: `
+ *
+ *
NgFormControl Example
+ *
+ *
Element with existing control:
+ *
Value of existing control: {{loginControl.value}}
+ *
+ *
+ * `,
+ * directives: [CORE_DIRECTIVES, FORM_DIRECTIVES]
+ * })
+ * export class App {
+ * loginControl: Control = new Control('');
* }
- *
* ```
*
+ * # ng-model
+ *
* We can also use `ng-model` to bind a domain model to the form.
*
- * ```
+ * ### Example ([live demo](http://plnkr.co/edit/yHMLuHO7DNgT8XvtjTDH?p=preview))
+ *
+ * ```typescript
* @Component({selector: "login-comp"})
* @View({
* directives: [FORM_DIRECTIVES],
diff --git a/modules/angular2/src/core/forms/directives/ng_form_model.ts b/modules/angular2/src/core/forms/directives/ng_form_model.ts
index 78ce068a1c..b00fb5c176 100644
--- a/modules/angular2/src/core/forms/directives/ng_form_model.ts
+++ b/modules/angular2/src/core/forms/directives/ng_form_model.ts
@@ -18,42 +18,48 @@ const formDirectiveBinding =
/**
* Binds an existing control group to a DOM element.
*
- * # Example
+ * ### Example ([live demo](http://plnkr.co/edit/jqrVirudY8anJxTMUjTP?p=preview))
*
* In this example, we bind the control group to the form element, and we bind the login and
* password controls to the login and password elements.
*
- * ```
- * @Component({selector: "login-comp"})
+ * ```typescript
+ * @Component({
+ * selector: 'my-app'
+ * })
* @View({
- * directives: [FORM_DIRECTIVES],
- * template: `
- *