为选项标签设置值和所选属性

时间:2018-10-11 13:26:58

标签: angular html5 angular6

曾经试图绕过设置选项标签的值和选定属性的问题。两者都可以在标签上正常工作,但是如果存在另一个,则两者都不起作用。

示例:

<select>
    <option *ngFor="let item of items" selected [ngValue]="item">
       {{item.value}}
    </option>
 </select>

在该示例中,“ selected”标签将被忽略,仅会设置一个值。 如果删除[ngValue],则所选属性将应用于该元素。

我该如何解决这个问题,既让我突出显示所选的选项又给它一个值?

使用Angular 6和打字稿

3 个答案:

答案 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