File
Description
BUTTONGROUPCOMPONENT IS DEPRECATED! DO NOT USE UNLESS YOU KNOW WHAT YOU'RE
DOING.
If you need a Yes/No toggle, @see RadioComponent
Implements
Example
<common-button-group [showError]="showError"
[errorMessageRequired]="requiredErrMsg"
label="Please select a value"
[data]="data.value" (dataChange)="setMovedToBCPermanently($event)" >
</common-button-group>
Index
Properties
|
|
Methods
|
|
Inputs
|
|
Outputs
|
|
disabled
|
Type : boolean
|
Default value : false
|
|
errorMessageRequired
|
Type : string
|
Default value : 'Field is required.'
|
|
label
|
Type : string
|
Default value : 'Default Checkbox'
|
|
required
|
Type : boolean
|
Default value : true
|
|
showError
|
Type : boolean
|
Default value : false
|
|
Outputs
dataChange
|
Type : EventEmitter<boolean>
|
|
Methods
registerOnChange
|
registerOnChange(fn: any)
|
|
Parameters :
Name |
Type |
Optional |
fn |
any
|
No
|
|
registerOnTouched
|
registerOnTouched(fn: any)
|
|
Parameters :
Name |
Type |
Optional |
fn |
any
|
No
|
|
setButtonGrpVal
|
setButtonGrpVal(val: any)
|
|
Parameters :
Name |
Type |
Optional |
val |
any
|
No
|
|
writeValue
|
writeValue(value: any)
|
|
Parameters :
Name |
Type |
Optional |
value |
any
|
No
|
|
Public
_onChange
|
Default value : () => {...}
|
|
Public
_onTouched
|
Default value : () => {...}
|
|
buttonGroup
|
Type : ElementRef
|
Decorators :
@ViewChild('buttonGroup')
|
|
import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, forwardRef } from '@angular/core';
import { ControlContainer, ControlValueAccessor, NgForm, NG_VALUE_ACCESSOR } from '@angular/forms';
/**
* BUTTONGROUPCOMPONENT IS **DEPRECATED**! **DO NOT USE** UNLESS YOU KNOW WHAT YOU'RE
* DOING.
*
* If you need a Yes/No toggle, @see RadioComponent
* @deprecated
*
*
*
*
* @example
* <common-button-group [showError]="showError"
* [errorMessageRequired]="requiredErrMsg"
* label="Please select a value"
* [data]="data.value" (dataChange)="setMovedToBCPermanently($event)" >
* </common-button-group>
*
* @export
*/
@Component({
selector: 'common-button-group',
templateUrl: './button-group.component.html',
styleUrls: ['./button-group.component.scss'],
viewProviders: [
{ provide: ControlContainer, useExisting: forwardRef(() => NgForm ) }
],
providers: [
{ provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => ButtonGroupComponent )}
]
})
export class ButtonGroupComponent implements ControlValueAccessor {
@Input() data: boolean;
@Input() required: boolean = true;
@Input() showError: boolean = false;
@Input() disabled: boolean = false;
@Input() errorMessageRequired: string = 'Field is required.';
@Input() label: string = 'Default Checkbox';
@Output() dataChange: EventEmitter<boolean> = new EventEmitter<boolean>();
@ViewChild('buttonGroup') buttonGroup: ElementRef;
public _onChange = (_: any) => {};
public _onTouched = () => {};
constructor() {}
setButtonGrpVal(val: any) {
this.dataChange.emit(val);
this._onChange(val);
this._onTouched();
}
focus() {
this.buttonGroup.nativeElement.focus();
this._onTouched();
}
registerOnChange(fn: any): void {
this._onChange = fn;
}
registerOnTouched(fn: any): void {
this._onTouched = fn;
}
writeValue(value: any): void {
this.data = value;
}
}
<div role="dialog" aria-labelledby="btn">
<p id="btn" class="control-label">{{label}}</p>
<div class="btn-group" role="group">
<button #buttonGroup *ngFor='let answer of [{"value": true, "label": "Yes"}, {"value": false, "label": "No"}]'
[class.btn-radio]="data === answer.value" (click)="setButtonGrpVal(answer.value)"
type="button" class="btn btn-default control-label"> {{answer.label}}
</button>
</div>
<div *ngIf='showError && (data === undefined || data === null)'>
<div class="text-danger">{{errorMessageRequired}}</div>
</div>
</div>
Legend
Html element with directive