File

projects/ng-dynamic-forms/core/src/lib/component/dynamic-form-control-with-template.component.ts

Extends

DynamicFormControlComponent

Implements

DynamicFormControlWithTemplate AfterViewInit

Index

Properties
Methods
Accessors

Properties

Readonly templateDirectives
Type : Map<string | string>
templates
Type : QueryList<DynamicTemplateDirective> | DynamicTemplateDirective[] | undefined
Private _hasFocus
Default value : false
blur
Type : EventEmitter<any>
change
Type : EventEmitter<any>
customEvent
Type : EventEmitter<DynamicFormControlCustomEvent>
focus
Type : EventEmitter<any>
formLayout
Type : DynamicFormLayout
group
Type : FormGroup
layout
Type : DynamicFormControlLayout
model
Type : DynamicFormControlModel
templates
Type : DynamicFormControlTemplates

Methods

bindTemplate
bindTemplate(template: DynamicTemplateDirective)
Parameters :
Name Type Optional
template DynamicTemplateDirective No
Returns : void
Abstract mapTemplate
mapTemplate(template: DynamicTemplateDirective)
Parameters :
Name Type Optional
template DynamicTemplateDirective No
Returns : DynamicTemplateDirective | TemplateRef
ngAfterViewInit
ngAfterViewInit()
Returns : void
getClass
getClass(context: DynamicFormControlLayoutContext, place: DynamicFormControlLayoutPlace, model: DynamicFormControlModel)
Parameters :
Name Type Optional Default value
context DynamicFormControlLayoutContext No
place DynamicFormControlLayoutPlace No
model DynamicFormControlModel No this.model
Returns : string
onBlur
onBlur($event: any)
Parameters :
Name Type Optional
$event any No
Returns : void
onChange
onChange($event: any)
Parameters :
Name Type Optional
$event any No
Returns : void
onCustomEvent
onCustomEvent($event: any, type: string | null, bypass: boolean)
Parameters :
Name Type Optional Default value
$event any No
type string | null No null
bypass boolean No false
Returns : void
onFocus
onFocus($event: any)
Parameters :
Name Type Optional
$event any No
Returns : void

Accessors

viewChild
getviewChild()
import { AfterViewInit, QueryList, TemplateRef } from "@angular/core";
import { DynamicFormControlWithTemplate } from "./dynamic-form-control-with-template-interface";
import { DynamicTemplateDirective } from "../directive/dynamic-template.directive";
import { DynamicFormControlComponent } from "./dynamic-form-control.component";
import { isString } from "../utils/core.utils";

export abstract class DynamicFormControlWithTemplateComponent extends DynamicFormControlComponent
    implements DynamicFormControlWithTemplate, AfterViewInit {

    readonly templateDirectives: Map<string, string>;

    templates: QueryList<DynamicTemplateDirective> | DynamicTemplateDirective[] | undefined;

    ngAfterViewInit() {

        this.layoutService
            .filterTemplatesByModel(this.model, this.templates)
            .forEach(template => this.bindTemplate(template));
    }

    abstract get viewChild(): any;

    abstract mapTemplate(template: DynamicTemplateDirective): DynamicTemplateDirective | TemplateRef<any>;

    bindTemplate(template: DynamicTemplateDirective) {

        if (isString(template.as) && this.templateDirectives.has(template.as)) {

            const property = this.templateDirectives.get(template.as) as string;

            this.viewChild[property] = this.mapTemplate(template);
        }
    }
}

result-matching ""

    No results matching ""