【发布时间】:2018-08-09 13:33:41
【问题描述】:
如何在角度 4 的选择框中获取 onchange 函数中的 optgroup 标签值
我在表单中有以下选择框,其中包含多个日期作为选项组,时间以 24 小时格式进行预订,例如上午 10 点、下午 12 点和下午 2 点分别为 1000、1200 和 1400。
<select class="form-control" formControlName="arrival_time" (change)="onSlotChange($event)">
<option value="" data-date="" data-slot="">Select Arrival Time</option>
<ng-container *ngIf="!availablePrevSlots">
<optgroup label="{{availablePrevSlotDate}}">
<option value=null hidden>-- No Slot Available --</option>
</optgroup>
</ng-container>
<ng-container *ngIf="availablePrevSlots">
<optgroup label="{{availablePrevSlotDate}}">
<option value=null hidden>HH:MM</option>
<option *ngFor="let slot of availablePrevSlots" [value]="slot">{{slotToString(slot)}}</option>
</optgroup>
</ng-container>
<ng-container *ngIf="!availableSlots">
<optgroup label="{{availableSlotDate}}">
<option value=null hidden>-- No Slot Available --</option>
</optgroup>
</ng-container>
<ng-container *ngIf="availableSlots">
<optgroup label="{{availableSlotDate}}">
<option value=null hidden>HH:MM</option>
<option *ngFor="let slot of availableSlots" [value]="slot">{{slotToString(slot)}}</option>
</optgroup>
</ng-container>
<ng-container *ngIf="!availableNextSlots">
<optgroup label="{{availableNextSlotDate}}">
<option value=null hidden>-- No Slot Available --</option>
</optgroup>
</ng-container>
<ng-container *ngIf="availableNextSlots">
<optgroup label="{{availableNextSlotDate}}">
<option value=null hidden>HH:MM</option>
<option *ngFor="let slot of availableNextSlots" [value]="slot">{{slotToString(slot)}}</option>
</optgroup>
</ng-container>
</select>
现在我正在使用 onchange 函数获取选定的时间/地点值,但我也想获取选项标签 有什么方法可以获取 optgroup 标签吗?
同样,一旦我们提交表单,我们会将插槽保存在数据库中,在编辑页面上,我们会通过数据绑定显示它,但由于多个 optgroup 可以有相同的插槽,它总是显示选择的第一个 optgroup 值
不确定如何显示此处选择的确切 optgroup 值。
【问题讨论】:
-
选项列表中有重复值是一种奇怪的模式。我认为首先您应该为选项的值加上前缀,例如 previous-available-1000 / available-1500 等... optgroup 并不是要处理重复的选择值。那么@e.m.b 应该去工作了
-
@PierreMallet 是的,这似乎是处理它的唯一方法,但它需要大量编码,因为我用于绑定,现在必须使用函数来获取和设置值,可能是我将使用一些隐藏字段
标签: angular typescript data-binding