select in angular 12 使用 ngModel 的默认选项值
Default option value for a select in angular 12 using ngModel
我有一个 select,它有一个硬编码选项,其中 ngValue 为空,其他选项用 ngFor 填充。
我希望第一个 null 选项默认为 selected。
无论我做什么,默认情况下我总是有一个空选项 selected。
我从父组件获取模型名称和数据,而父组件的数据来自 api。
select 组件。html:
<select name="typeSelect" [(ngModel)]="model" (ngModelChange)="onSelectChange($event)" class="form-select"
aria-label="Type select">
<option [ngValue]="null">Select a type</option>
<option *ngFor="let type of object.types" [ngValue]="type">{{ type.name }}</option>
</select>
它的.ts:
@Input() object: ObjectData;
@Output() outputChosenType: EventEmitter<any> = new EventEmitter<any>();
@Input() model: string = '';
onSelectChange(chosenType: any) {
if(chosenType !== null ){...}
}
我的 ts 中没有其他检查和逻辑,因为它们工作正常,唯一不工作的是选择了第一个选项。
模型来自另一个带有此组件的 ngFor。
parent.html:
<app-typeSelect-card *ngFor="let object of allObjects.data ; let i = index" [object]="singleObject"
[model]="i.toString()" (outputChosenType)="onOutput($event)"></app-typeSelect-card>
如果您将模型的默认值更改为空,它将起作用。
@Input() model: string = null;
我有一个 select,它有一个硬编码选项,其中 ngValue 为空,其他选项用 ngFor 填充。 我希望第一个 null 选项默认为 selected。 无论我做什么,默认情况下我总是有一个空选项 selected。
我从父组件获取模型名称和数据,而父组件的数据来自 api。
select 组件。html:
<select name="typeSelect" [(ngModel)]="model" (ngModelChange)="onSelectChange($event)" class="form-select"
aria-label="Type select">
<option [ngValue]="null">Select a type</option>
<option *ngFor="let type of object.types" [ngValue]="type">{{ type.name }}</option>
</select>
它的.ts:
@Input() object: ObjectData;
@Output() outputChosenType: EventEmitter<any> = new EventEmitter<any>();
@Input() model: string = '';
onSelectChange(chosenType: any) {
if(chosenType !== null ){...}
}
我的 ts 中没有其他检查和逻辑,因为它们工作正常,唯一不工作的是选择了第一个选项。
模型来自另一个带有此组件的 ngFor。
parent.html:
<app-typeSelect-card *ngFor="let object of allObjects.data ; let i = index" [object]="singleObject"
[model]="i.toString()" (outputChosenType)="onOutput($event)"></app-typeSelect-card>
如果您将模型的默认值更改为空,它将起作用。
@Input() model: string = null;