html - 如何在 Angular2 (7) 中使用 NgModel 在 Select/Option 中设置占位符?
问题描述
我需要在我的选择选项中设置一个默认值/占位符,它看起来很容易做到,但我做不到。我尝试了不同的东西,但我得到了相同的结果。
<select class="form-control border custom-select" [compareWith]="compareFn"
[(ngModel)]="skill.category">
<option selected disabled="disabled">Chose a category...</option>
<option *ngFor="let cat of categories" [ngValue]="cat"
[hidden]="cat.id === 1">{{cat.name}}</option>
</select>
compareFn(c1: Skill, c2: Skill): boolean {
return c1 && c2 ? c1.id === c2.id : c1 === c2;
}
我的输出是这样的:
[CATEGORY id=1] default //我希望完全隐藏(id=1 hidden)
落下 {
[选择一个类别...]
[类别 ID=2]
[类别 ID=3]
[类别 ID=4]
... } 结束下拉菜单
解决方案
为了达到预期的效果,使用切片管
- slice: 1 - 如果要删除的值始终是第一个选项
<select class="form-control border custom-select">
<option selected disabled="disabled">Chose a category...</option>
<option *ngFor="let cat of categories| slice:1" [ngValue]="cat">
{{cat.name}}</option>
</select>
代码参考 - https://stackblitz.com/edit/angular-ay8zzk
有关 Slice Pipe 的更多详细信息,请参阅此链接 - https://angular.io/api/common/SlicePipe
推荐阅读
- parsing - 如何实时检索用户的 Medium 帖子?
- rest - 如何在 Postman 中为 GCP 存储自动生成新的不记名令牌
- javascript - html中元素之间的空格(节点)
- javascript - onclick后如何标记过渡已结束?
- html - CSS悬停网格框一次具有2种不同的背景颜色
- sql - SQL:检索 2005 年及之后的所有会议
- android - 具有有限数据包大小的 Android MediaProjection
- bash - 我不知道为什么我不断收到此错误“意外标记'do'附近的语法错误”
- authentication - 分解 OCB 模式的工作原理
- silverlight - Silverlight 框架 -(最终用户)