【发布时间】:2018-06-20 21:30:47
【问题描述】:
我正在尝试实现 3 个选择下拉菜单,它们具有与选项相同的对象数组。所有 3 个下拉菜单都是互斥的,即如果我在一个下拉菜单中选择一个选项,则它不应显示在其他两个等中。这是我的代码:
home.component.html
<select formControlName="secQues1" id="securityQuestion1"
class="form-control">
<option value="" disabled>Select your first security question...</option>
<option *ngFor="let question of securityQuestions" [value]="question.index">
{{question.name}}</option>
</select>
<select formControlName="secQues2" id="securityQuestion2"
class="form-control">
<option value="" disabled>Select your first security question...</option>
<option *ngFor="let question of securityQuestions" [value]="question.index">
{{question.name}}</option>
</select>
<select formControlName="secQues3" id="securityQuestion3"
class="form-control">
<option value="" disabled>Select your first security question...</option>
<option *ngFor="let question of securityQuestions" [value]="question.index">
{{question.name}}</option>
</select>
这是我的选项数组。这里大约有 15-20 个条目。
home.component.ts
securityQuestions = [{
index : 0,
name : "What was your childhood nickname?"
},{
index : 1,
name : "In what city did you meet your spouse/significant other?"
}]
我尝试使用 3 个不同的数组,然后从 2 个数组拼接,但是当有人更改选项时它不起作用(在这种情况下,旧选项应该添加回其他 2 个下拉菜单)。 有什么建议吗?
【问题讨论】:
-
其他两个下拉列表反映了相同的值,因为您对所有 3 个都具有相同的
value绑定。具体来说,它们都绑定到question.index属性,因此每当此属性更改时,下拉值都会更改。您需要将value属性绑定到不同的变量,以使它们独立。
标签: javascript angular filter ngfor