diff --git a/src/demo-app/slide-toggle/slide-toggle-demo.html b/src/demo-app/slide-toggle/slide-toggle-demo.html
index cf78e71dea60..a1c6192e1563 100644
--- a/src/demo-app/slide-toggle/slide-toggle-demo.html
+++ b/src/demo-app/slide-toggle/slide-toggle-demo.html
@@ -11,4 +11,19 @@
Disable Bound
+
+
Example where the slide toggle is required inside of a form.
+
+
{
}));
+ it('should forward the required attribute', () => {
+ testComponent.isRequired = true;
+ fixture.detectChanges();
+
+ expect(inputElement.required).toBe(true);
+
+ testComponent.isRequired = false;
+ fixture.detectChanges();
+
+ expect(inputElement.required).toBe(false);
+ });
+
describe('state transition css classes', () => {
it('should transition unchecked -> checked -> unchecked', () => {
testComponent.isChecked = true;
@@ -502,6 +514,7 @@ describe('MdCheckbox', () => {
{
class SingleCheckbox {
alignment: string = 'start';
isChecked: boolean = false;
+ isRequired: boolean = false;
isIndeterminate: boolean = false;
isDisabled: boolean = false;
parentElementClicked: boolean = false;
diff --git a/src/lib/checkbox/checkbox.ts b/src/lib/checkbox/checkbox.ts
index 39959ada95af..0dee0d42202c 100644
--- a/src/lib/checkbox/checkbox.ts
+++ b/src/lib/checkbox/checkbox.ts
@@ -12,6 +12,7 @@ import {
ModuleWithProviders,
} from '@angular/core';
import {NG_VALUE_ACCESSOR, ControlValueAccessor} from '@angular/forms';
+import {BooleanFieldValue} from '@angular2-material/core';
/**
* Monotonically increasing integer used to auto-generate unique ids for checkbox components.
@@ -92,6 +93,9 @@ export class MdCheckbox implements ControlValueAccessor {
return `input-${this.id}`;
}
+ /** Whether the checkbox is required or not. */
+ @Input() @BooleanFieldValue() required: boolean = false;
+
/** Whether or not the checkbox should come before or after the label. */
@Input() align: 'start' | 'end' = 'start';
diff --git a/src/lib/slide-toggle/slide-toggle.html b/src/lib/slide-toggle/slide-toggle.html
index 48d7115f30dd..810fef49b038 100644
--- a/src/lib/slide-toggle/slide-toggle.html
+++ b/src/lib/slide-toggle/slide-toggle.html
@@ -13,8 +13,9 @@
-