3 回答
TA贡献1777条经验 获得超3个赞
似乎有比此处提供的答案更简单的方法。ngFor已导出可以别名为局部变量的值(来源:docs)。我们可以使用first局部变量来禁用除first下拉列表中的所有元素。
根据文档
first: boolean: 当项目是可迭代中的第一项时为真。
考虑到这一点,我们可以first使用[disabled]="!first"
这是您的 HTML 现在的外观
<select class="select-option" name="tier" required [ngModel]="tierDropDown">
<option value="select Tier" selected>Select Tier</option>
<option class="option" *ngFor="let tier of tierList; let first = first" value="{{tier}}" [disabled]="!first">
{{ tier }}
</option>
</select>
然后在你的组件中排序tierList。
TA贡献1802条经验 获得超4个赞
您可以将数组中的最小值存储在局部变量中,然后将该变量用于[disabled]属性:
HTML代码:
<select class="select-option" name="tier" required [ngModel]="tierDropDown">
<option value="select Tier" selected>Select Tier</option>
<option class="option" *ngFor="let tier of tierList" let i="index" value="{{tier}}" [disabled]="tier != LowestValue">
{{ tier }}
</option>
</select>
TS:
@Component({
selector: 'select-overview-example',
templateUrl: 'select-overview-example.html',
styleUrls: ['select-overview-example.css'],
})
export class SelectOverviewExample {
tierList = ["Tier1", "Tier5", "Tier3", "Tier4", "Tier2"]
LowestValue: any;
constructor() {
this.LowestValue = this.tierList.sort()[0];
}
}
TA贡献1871条经验 获得超8个赞
您可以使用以下答案,
您的html 文件
<select class="select-option" name="tier" required >
<option value="select Tier" selected>Select Tier</option>
<option class="option" [disabled]="arr" *ngIf="arr">
{{arr}}
</option>
<option class="option" *ngFor="let tier of tierList" let i="index" value="{{tier}}" >
{{ tier }}
</option>
</select>
在.ts文件中,
tierList =["Tier1","Tier2","Tier3","Tier4","Tier5"];
arr = [];
let min = this.tierList;
this.arr = min.sort();
this.arr.splice(this.arr[0], 1);
this.arr = this.arr.splice(this.arr[0], 1);
this.arr = this.arr[0]
console.log(this.arr[0]);
console.log(this.tierList);
这个答案对你有用。
添加回答
举报