gpt4 book ai didi

angular-reactive-forms - 如何以 react 形式获取下拉列表的选定值

转载 作者:行者123 更新时间:2023-12-05 04:07:37 25 4
gpt4 key购买 nike

我正在尝试获取要在响应式表单提交时发送的更改事件下拉列表的选定值。根据 how to get selected value of radio in reactive form 的回答,我有一个非常相似的 radio 场景。

下拉代码如下

<div class="row" *ngIf="question.controls.type.value === 'dropdown'">
<div class="col-md-12">
<div class="form-group__text select">
<label for="type">{{ question.controls.label.value }}</label>
<br><br>
<select name="value" formArrayName="component" (change)="updateSelection(question.controls.component.controls, $event.target)">
<option
*ngFor="let answer of question.controls.component.controls; let j = index" [formGroupName]="j"
[ngValue]="answer?.value?.value">
{{answer?.value?.value}}
</option>
</select>
</div>
</div>
</div>

我无法将答案作为 formcontrol 传递给 updateSelection,以更改下拉列表中的选定选项。非常感谢任何帮助。

https://stackblitz.com/edit/angular-acdcac

最佳答案

与上一个问题非常相似,我们迭代数组中的表单控件,最初将所有设置为 false,然后将选定的选项设置为 true。所以模板让我们传递 $event.target.value:

<select name="value" formArrayName="component" 
(change)="updateSelection(question.controls.component.controls, $event.target.value)">
<option *ngFor="let answer of question.controls.component.controls; let j = index" [formGroupName]="j"
[ngValue]="answer?.value?.value">
{{answer?.value?.value}}
</option>
</select>

在组件中,我们如前所述迭代表单控件并将所有控件设置为 false$event.target.value 的值将是字符串值,例如 Choice 1。然后我们搜索具有该值的表单控件,然后为该特定表单组设置 bool 值:

updateSelection(formArr, answer) {
formArr.forEach(x => {
x.controls.selectedValue.setValue(false)
})
let ctrl = formArr.find(x => x.value.value === answer)
ctrl.controls.selectedValue.setValue(true)
}

你的 fork StackBlitz

关于angular-reactive-forms - 如何以 react 形式获取下拉列表的选定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48517602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com