html - 在 Angular 7 中,下拉菜单的默认选择值并不直接
问题描述
我最近一直在使用 Angular 7,并在尝试显示下拉列表并在此列表中显示默认值时发现了一些奇怪的事情。这里分别是两个单独的列表:
示例.component.html
<select [(ngModel)]="organization" id="organization" required>
<option *ngFor="let organization of organizations" [value]="organization.id" [ngValue]="organization.name">{{organization.name}}</option>
</select>
<br>
我发现上面的代码在我的浏览器中显示了以下内容:
注意上面的默认值是如何设置的,但是在下一个下拉菜单中没有设置默认值:
示例.component.html
<select [(ngModel)]="seniorExperience" id="seniorExperience" required>
<option *ngFor="let seniorExperience of seniorExperiences" [value]="seniorExperience.seniorExperienceId" [ngValue]="seniorExperience.seniorExperienceName">{{seniorExperience.seniorExperienceName}}</option>
</select>
浏览器显示以下内容:
为什么第二个下拉列表没有填充默认值,同时遵循相同的语法?通过搜索和阅读文档,我推测 [ngValue] 设置了下拉列表的默认值,这似乎适用于第一个下拉列表。有没有更好的方法来设置默认选择?
解决方案
根据 Angular 7 实现:
在 HTML 中:
<select *ngIf="ownerLevels" [value]="selectedOwnerLevel" (change)="onChangeOwnerLevel($event.target.value)" formControlName="ownerLevel" id="ddOwnerLevel">
<option [value]="0" disabled>Select Owner Level</option>
<option *ngFor="let ownerLevel of ownerLevels" [value]="ownerLevel.id">{{ownerLevel.name}}</option>
</select>
在 TS 中:
ownerLevels = [
{ id: 1, name: 'Company' },
{ id: 2, name: 'Department' },
{ id: 3, name: 'Personal Area' }
];
selectedOwnerLevel: number = 0;
onChangeOwnerLevel(ownerLevelId: number) {
this.selectedOwnerLevel = ownerLevelId;
}
推荐阅读
- powershell - 在powershell中比较两个csv文件时我在哪里出错?
- javascript - 仅对一个元素主动应用
- json - 以漂亮格式获取 git 日志输出
- java - Java 8 流映射
> 每个键的值总和 - node.js - 如何在带有嵌入文档的 MongoDB 中正确使用聚合?
- java - JPA 和 Oracle 12 中的 @Lob 注释
- java - Crashlytics 如何找到崩溃的确切来源
- excel - Excel:将值向下复制一列,直到另一列中的第一个空白单元格?
- scala - 如何更新 Spark DataFrame 的架构(Dataset.withColumn 和 Datset.select 等方法在我的情况下不起作用)
- c# - asp.net .asmx 网络服务 ishow XXE 漏洞 - 外部 DNS