将数据库ID绑定到输入字段名称

时间:2020-01-12 03:07:06

标签: javascript angular database database-design

我发现将输入字段名称绑定到整数值不是一个好习惯,但是我不知道我还能怎么做。

我必须生成动态输入字段才能提交用户的医学检验结果。为了将这些输入与测试ID相关联,我将输入的键作为测试表的ID。

我当前的数据库设计

测试数据

| id | test_id | test_data |
|----|---------|-----------|
| 1  | 1       | aaa       |
| 2  | 1       | bbb       |

测试结果

| id | client_test_id | test_data_id | result |
|----|----------------|--------------|--------|
| 1  | 1              | 1            | 120    |
| 2  | 1              | 2            | 230    |

我目前如何生成输入字段以提交测试结果

在组件中

getTestData(testDatas: any) {
    this.clientTestDataNew = [];
    testDatas.forEach(testData => {
        let testDataItem = new TextTestDataItem({
            key: testData.id,
            label: testData.name,
            type: 'text',
            value: '',
            required: true,
            order: 1
        });
        this.clientTestDataNew.push(testDataItem);
    });
}

在模板中

<form *ngIf="clientTestDataNew?.length > 0" (ngSubmit)="onSubmit()" [formGroup]="form">
    <div *ngFor="let clientTestDataItem of clientTestDataNew" class="form-row">
        <div [formGroup]="form">
            <label [attr.for]="clientTestDataItem.key">{{clientTestDataItem.label}}</label>
            <div [ngSwitch]="clientTestDataItem.controlType">
                <input *ngSwitchCase="'textbox'" [formControlName]="clientTestDataItem.key"
                    [id]="clientTestDataItem.key" [type]="clientTestDataItem.type">
                <select [id]="clientTestDataItem.key" *ngSwitchCase="'dropdown'"
                    [formControlName]="clientTestDataItem.key">
                    <option *ngFor="let opt of clientTestDataItem.options" [value]="opt.key">{{opt.value}}</option>
                </select>
            </div>
            <div class="errorMessage" *ngIf="!isValid">{{clientTestDataItem.label}} is required</div>
        </div>
    </div>
</form>

0 个答案:

没有答案
相关问题