# Class FormSystemControlDirective<T>

#### Type Parameters

- T

#### Hierarchy (View Summary)

- ExtractDataSourcesMixin
- ControlValueAccessor
- OnInit
  - FormSystemControlDirective

#### Implements

- ControlValueAccessor
- OnInit

- Defined in packages/angular/form-system/src/lib/form-system-control.directive.ts:36
- Defined in packages/angular/form-system/src/lib/form-system-control.directive.ts:44

#####
Index

### Constructors

constructor

### Properties

componentRef
control
controlId

### Methods

extractDataSources
ngOnInit
registerOnChange
registerOnTouched
setDisabledState
writeValue

##
Constructors

### constructor

- new FormSystemControlDirective<T>(
  parent: ControlContainer,
  cfr: ComponentFactoryResolver,
  viewContainerRef: ViewContainerRef,
  dataSourceLoader: DataSourceLoader,
  injector: Injector,
  ): FormSystemControlDirective<T>

  #### Type Parameters

  - T

  #### Parameters

  - parent: ControlContainer
  - cfr: ComponentFactoryResolver
  - viewContainerRef: ViewContainerRef
  - dataSourceLoader: DataSourceLoader
  - injector: Injector

  #### Returns FormSystemControlDirective<T>

  Inherited from ExtractDataSourcesMixin.constructor

  - Defined in packages/angular/form-system/src/lib/form-system-control.directive.ts:56

##
Properties

### `Protected` componentRef

componentRef: ComponentRef<
ControlValueAccessor & Partial<ControlWithDataSource<any, any>>,
>

- Defined in packages/angular/form-system/src/lib/form-system-control.directive.ts:54

### `Protected` control

control: RxapFormControl

- Defined in packages/angular/form-system/src/lib/form-system-control.directive.ts:52

### controlId

controlId: string

Defines the form control id

- Defined in packages/angular/form-system/src/lib/form-system-control.directive.ts:50

##
Methods

### `Protected` extractDataSources

- extractDataSources(
  formDefinition: FormDefinition,
  controlId: string,
  ): Map<string, UseDataSourceValue<any, any>>

  #### Parameters

  - formDefinition: FormDefinition
  - controlId: string

  #### Returns Map<string, UseDataSourceValue<any, any>>

  Inherited from ExtractDataSourcesMixin.extractDataSources

  - Defined in packages/angular/form-system/src/lib/mixins/extract-data-sources.mixin.ts:9

### ngOnInit

- ngOnInit(): void

  A callback method that is invoked immediately after the default change detector has checked the directive's data-bound properties for the first time, and before any of the view or content children have been checked. It is invoked only once when the directive is instantiated.

  #### Returns void

  Inherited from OnInit.ngOnInit

  - Defined in packages/angular/form-system/src/lib/form-system-control.directive.ts:70

### registerOnChange

- registerOnChange(fn: (value: any) => void): void

  #### Parameters

  - fn: (value: any) => void

    The callback function to register

  #### Returns void

  #### Description

  Registers a callback function that is called when the control's value changes in the UI.

  This method is called by the forms API on initialization to update the form model when values propagate from the view to the model.

  When implementing the `registerOnChange` method in your own value accessor, save the given function so your class calls it at the appropriate time.

  #### Usage Notes

  ### Store the change function

  The following example stores the provided function as an internal method.

      registerOnChange(fn: (_: any) => void): void {
        this._onChange = fn;
      }

  When the value changes in the UI, call the registered function to allow the forms API to update itself:

      host: {
         '(change)': '_onChange($event.target.value)'
      }

  Inherited from ControlValueAccessor.registerOnChange

  - Defined in packages/angular/form-system/src/lib/form-system-control.directive.ts:85

### registerOnTouched

- registerOnTouched(fn: () => void): void

  #### Parameters

  - fn: () => void

    The callback function to register

  #### Returns void

  #### Description

  Registers a callback function that is called by the forms API on initialization to update the form model on blur.

  When implementing `registerOnTouched` in your own value accessor, save the given function so your class calls it when the control should be considered blurred or "touched".

  #### Usage Notes

  ### Store the callback function

  The following example stores the provided function as an internal method.

      registerOnTouched(fn: any): void {
        this._onTouched = fn;
      }

  On blur (or equivalent), your class should call the registered function to allow the forms API to update itself:

      host: {
         '(blur)': '_onTouched()'
      }

  Inherited from ControlValueAccessor.registerOnTouched

  - Defined in packages/angular/form-system/src/lib/form-system-control.directive.ts:89

### setDisabledState

- setDisabledState(isDisabled: boolean): void

  #### Parameters

  - isDisabled: boolean

    The disabled status to set on the element

  #### Returns void

  #### Description

  Function that is called by the forms API when the control status changes to or from 'DISABLED'. Depending on the status, it enables or disables the appropriate DOM element.

  #### Usage Notes

  The following is an example of writing the disabled property to a native DOM element:

      setDisabledState(isDisabled: boolean): void {
        this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);
      }

  Inherited from ControlValueAccessor.setDisabledState

  - Defined in packages/angular/form-system/src/lib/form-system-control.directive.ts:97

### writeValue

- writeValue(value: any): void

  #### Parameters

  - value: any

  #### Returns void

  #### Description

  Writes a new value to the element.

  This method is called by the forms API to write to the view when programmatic changes from model to view are requested.

  #### Usage Notes

  ### Write a value to the element

  The following example writes a value to the native DOM element.

      writeValue(value: any): void {
        this._renderer.setProperty(this._elementRef.nativeElement, 'value', value);
      }

  Inherited from ControlValueAccessor.writeValue

  - Defined in packages/angular/form-system/src/lib/form-system-control.directive.ts:93