• @angular/cli项目构建--Dynamic.Form(2)


    form-item-control.service.ts update

    @Injectable()
    export class FormItemControlService {
      constructor(private formBuilder: FormBuilder) {
      }
    
      toFormGroup(formItems: FormItemBase<any>[]) {
        const group: any = {};
        formItems.forEach(formItem => {
          group[formItem.key] = formItem.required
            ? [formItem.value || '', Validators.required]
            : [formItem.value || ''];
        });
        return this.formBuilder.group(group);
      }
    }

    dynamic-form.component update

    <div [formGroup]="form">
      <label [attr.for]="formItem.key">{{formItem.label}}</label>
      <div [ngSwitch]="formItem.controlType">
    
        <input *ngSwitchCase="'textBox'" [formControlName]="formItem.key"
               [id]="formItem.key" [type]="formItem.type" maxlength="{{formItem.maxLength}}">
    
        <select [id]="formItem.key" *ngSwitchCase="'dropDown'" [formControlName]="formItem.key">
          <option *ngFor="let opt of formItem.options" [value]="opt.key">{{opt.value}}</option>
        </select>
    
        <div *ngFor="let opt of formItem.radioOptions">
          <input *ngSwitchCase="'radio'" [formControlName]="formItem.key"
                 [id]="opt.key" type="radio" [value]="opt.key">
          <label [attr.for]="opt.key">{{opt.value}}</label>
        </div>
    
        <div *ngFor="let opt of formItem.checkOptions">
          <input *ngSwitchCase="'checkbox'" [formControlName]="formItem.key"
                 [id]="opt.key" type="checkbox" [value]="opt.key">
          <label [attr.for]="opt.key">{{opt.value}}</label>
        </div>
    
      </div>
    
      <!--<div class="errorMessage" *ngIf="!isValid && form.get(formItem.key).touched">{{formItem.label}} is required</div>-->
      <div class="errorMessage"
           *ngIf="form.get(formItem.key).hasError('required') && form.get(formItem.key).touched">
        {{formItem.label}} is required
      </div>
    </div>
  • 相关阅读:
    python字符串,列表,字典的常用方法
    Python【第一课】 Python简介和基础
    python中index()与find()的差异
    tomcat学习笔记2
    tomcat学习笔记1
    haproxy学习笔记
    高可用工具keepalived学习笔记
    ngx_http_upstream_module模块学习笔记
    nginx的rewrite,gzip,反向代理学习笔记
    nginx学习笔记1
  • 原文地址:https://www.cnblogs.com/Nyan-Workflow-FC/p/8133967.html
Copyright © 2020-2023  润新知