曾经试图绕过设置选项标签的值和选定属性的问题。两者都可以在标签上正常工作,但是如果存在另一个,则两者都不起作用。
示例:
<select>
<option *ngFor="let item of items" selected [ngValue]="item">
{{item.value}}
</option>
</select>
在该示例中,“ selected”标签将被忽略,仅会设置一个值。 如果删除[ngValue],则所选属性将应用于该元素。
我该如何解决这个问题,既让我突出显示所选的选项又给它一个值?
使用Angular 6和打字稿
答案 0 :(得分:0)
您必须创建将参数item
用作参数的函数,并返回布尔值-例如isSelected(item)
。此函数的结果将指示selected
是对还是假。
value
可以像显示时一样进行分配,因此[value]="item.value."
答案 1 :(得分:0)
根据您提供的有限描述,似乎项是一个对象数组。尝试将实际值分配给[ngValue],例如[ngValue] = item.value。根据您的代码,似乎您想将对象分配给[ngValue],这可能会使模板难以解析所选的值。
答案 2 :(得分:0)
通过以您现有的方式指定selected
,每个<option>
都会被选中,并且从此混乱。根据您选择的内容,我不清楚,因此对于我的解决方案,我希望使用一个具有所选<option>
值的局部变量:
selectedItem = "Three";
然后,绑定到对此求值的表达式:
<option *ngFor="let item of items" [selected]="selectedItem == item.value" [ngValue]="item.value" >
{{item.value}}
</option>
此处有完整的StackBlitz:https://stackblitz.com/edit/angular-c6cxkf