Skip to content

Instantly share code, notes, and snippets.

@jorroll
Created November 4, 2019 22:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jorroll/de1149b72b42ba8dcab892379456c8cd to your computer and use it in GitHub Desktop.
Save jorroll/de1149b72b42ba8dcab892379456c8cd to your computer and use it in GitHub Desktop.
@Component({
template: `
<div>
<label>First name</label>
<input
[value]="value"
(valueChange)="onChange($event)"
(blur)="onTouched()"
[required]="required"
[disabled]="disabled"
/>
</div>
`,
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => FirstNameInputComponent),
multi: true,
},
],
})
export class FirstNameInputComponent implements ControlValueAccessor, OnInit {
@Input() required = false;
value: any;
disabled = false;
onChange: () => any;
onTouched: () => any;
registerOnChange(fn: any) {
this.onChange = fn;
}
registerOnTouched(fn: any) {
this.onTouched = fn;
}
writeValue(val: any) {
this.value = val;
}
setDisabledState(isDisabled: boolean) {
this.disabled = isDisabled;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment