我有這個列舉:
export enum LogLevel {
DEBUG = 'DEBUG',
INFO = 'INFO',
WARNING = 'WARNING',
ERROR = 'ERROR'
}
我想在我的表單中構建一個選擇,對于每個選項,列舉文本作為標簽:
<select>
<option value="DEBUG">DEBUG</option>
<option value="INFO">INFO</option>
<option value="INFO">INFO</option>
<option value="INFO">INFO</option>
</select>
這樣做的正確方法是什么?
uj5u.com熱心網友回復:
嘗試使用 Object.values 將列舉轉換為陣列:
<select>
<option *ngFor="let logValue of Object.values(LogLevel)" [ngValue]="logValue">{{}logValue}</option>
</select>
uj5u.com熱心網友回復:
這是一個簡單的解決方案
1. content of app.component.ts:
export class AppComponent {
keys = Object.keys;
logLevel = LogLevel;
selected = LogLevel.DEBUG;
select(event: any) {
const value = event.target.value;
this.selected = value;
console.log(this.selected);
}
}
export enum LogLevel {
DEBUG = 'DEBUG',
INFO = 'INFO',
WARNING = 'WARNING',
ERROR = 'ERROR',
}
2. content of app.component.html
<select [(ngModel)]="selected" (change)="select($event)">
<option *ngFor="let log of keys(logLevel)" [value]="logLevel[log]">
{{ log }}
</option>
</select>
有關更多資訊,請查看此鏈接https://stackblitz.com/edit/angular-ivy-cuhnbw
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/398530.html
標籤:javascript 有角的 打字稿
