我试图通过将索引作为目标来显示选择框的第一个选择项,selected=“index==0”,如下所示,但这并不成功。我怎样才能做到这一点?
<div class="col-md-12 col-lg-4"> <select class="pull-right border-outset3 p-a-pt5 w-15" [(ngModel)]="sortValue" (change)="sortProducts()"> <optgroup label="Sort By:"> <option *ngFor="let menu of sortMenu$ | async; let ndx=index" value="{{menu.value}}" selected="ndx==0"> {{menu.label}} </option> </optgroup> </select> </div>
您可以定义可观察的修改版本(例如 sortMenuDefault ,其中第一个项的值分配给 sortValue 与 do 操作员:
sortMenuDefault
sortValue
do
this.sortMenuDefault = this.sortMenu$.do(items => { if (!this.sortValue && items && items.length > 0) { this.sortValue = items[0].value; } });
并在模板中使用可观察到的:
<select [(ngModel)]="sortValue" ...> <option *ngFor="let menu of sortMenuDefault | async" [value]="menu.value"> {{menu.label}} </option> </select>
见 this stackblitz 用于演示。