【发布时间】:2021-03-19 08:48:04
【问题描述】:
我有一个选择下拉菜单,我将第一个值设置为未定义。
但问题是,如果我选择一个下拉值,然后选择第一个值(“全部”),那么我的绑定变量最终会变成一个字符串“未定义”,它实际上将它从一个数字更改为一个字符串。
memberParams.membership // is a :number and I don't want it to be converted to a string
并且 memberTypes 是一个名称/值对
export interface IMemberType {
value: number;
name: string;
}
为什么会这样,我该如何预防?
this.memberTypes = [{value: undefined, name: 'All'}, ...response.memberships];
<select class="form-control custom-select w-100" name="memberType" [(ngModel)]="memberParams.membership">
<option *ngFor="let memberType of memberTypes" [value]="memberType.value">
{{memberType.name}}
</option>
</select>
【问题讨论】:
-
您可以完全省略
value并使用*ngIf member.value else all吗? -
否,因为 memberTypes 是一个具有名称/值对的接口
-
那为什么不把这个值设为可选呢?
undefined不是数字,因此对象已经在谎报其类型。 -
可选是什么意思?
-
@user1186050 可以改成
value?: number;
标签: javascript html typescript